diff --git a/tests/functional/arno/derived_tables/test_01.py b/tests/functional/arno/derived_tables/test_01.py index 4f15ffc4..1090042c 100644 --- a/tests/functional/arno/derived_tables/test_01.py +++ b/tests/functional/arno/derived_tables/test_01.py @@ -42,8 +42,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SELECT dt.* FROM - (SELECT * FROM Table_10 t10) dt; -""" +(SELECT * FROM Table_10 t10) dt;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -58,11 +57,11 @@ expected_stdout_1 = """ ID DESCRIPTION 6 six 7 seven 8 eight - 9 nine""" +9 nine""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_02.py b/tests/functional/arno/derived_tables/test_02.py index 6ea6483b..ae78ef77 100644 --- a/tests/functional/arno/derived_tables/test_02.py +++ b/tests/functional/arno/derived_tables/test_02.py @@ -42,8 +42,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SELECT * FROM - (SELECT * FROM Table_10 t10); -""" +(SELECT * FROM Table_10 t10);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -58,11 +57,11 @@ expected_stdout_1 = """ ID DESCRIPTION 6 six 7 seven 8 eight - 9 nine""" +9 nine""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_03.py b/tests/functional/arno/derived_tables/test_03.py index 67ae3e69..b1ab3589 100644 --- a/tests/functional/arno/derived_tables/test_03.py +++ b/tests/functional/arno/derived_tables/test_03.py @@ -42,8 +42,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SELECT dt.* FROM - (SELECT * FROM Table_10 t10) dt (TEST_ID, TEST_DESC); -""" +(SELECT * FROM Table_10 t10) dt (TEST_ID, TEST_DESC);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -58,11 +57,11 @@ expected_stdout_1 = """ TEST_ID TEST_DESC 6 six 7 seven 8 eight - 9 nine""" +9 nine""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_04.py b/tests/functional/arno/derived_tables/test_04.py index d1b892ec..0f09d092 100644 --- a/tests/functional/arno/derived_tables/test_04.py +++ b/tests/functional/arno/derived_tables/test_04.py @@ -42,8 +42,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SELECT dt.* FROM - (SELECT ID, ID FROM Table_10 t10) dt; -""" +(SELECT ID, ID FROM Table_10 t10) dt;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -51,12 +50,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 Dynamic SQL Error -SQL error code = -104 -Invalid command --column ID was specified multiple times for derived table DT -""" +-column ID was specified multiple times for derived table DT""" @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/arno/derived_tables/test_05.py b/tests/functional/arno/derived_tables/test_05.py index 6e290c7d..d6e4ec96 100644 --- a/tests/functional/arno/derived_tables/test_05.py +++ b/tests/functional/arno/derived_tables/test_05.py @@ -42,8 +42,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SELECT dt.* FROM - (SELECT * FROM Table_10 t10) dt (ID, ID); -""" +(SELECT * FROM Table_10 t10) dt (ID, ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -51,12 +50,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 Dynamic SQL Error -SQL error code = -104 -Invalid command --column ID was specified multiple times for derived table DT -""" +-column ID was specified multiple times for derived table DT""" @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/arno/derived_tables/test_06.py b/tests/functional/arno/derived_tables/test_06.py index f5b511c3..488376a8 100644 --- a/tests/functional/arno/derived_tables/test_06.py +++ b/tests/functional/arno/derived_tables/test_06.py @@ -43,8 +43,7 @@ test_script_1 = """SELECT dt.* FROM Table_10 t10 - JOIN (SELECT * FROM Table_10 t2 WHERE t2.ID = t10.ID) dt ON (1 = 1); -""" +JOIN (SELECT * FROM Table_10 t2 WHERE t2.ID = t10.ID) dt ON (1 = 1);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -54,12 +53,11 @@ Dynamic SQL Error -Column unknown -T10.ID -At line 5, column 53 - """ @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/arno/derived_tables/test_07.py b/tests/functional/arno/derived_tables/test_07.py index 77fe81cb..1d1fe50b 100644 --- a/tests/functional/arno/derived_tables/test_07.py +++ b/tests/functional/arno/derived_tables/test_07.py @@ -43,8 +43,7 @@ test_script_1 = """SELECT dt.* FROM Table_10 t10 - LEFT JOIN (SELECT * FROM Table_10 t2 WHERE t2.ID = t10.ID) dt ON (1 = 1); -""" +LEFT JOIN (SELECT * FROM Table_10 t2 WHERE t2.ID = t10.ID) dt ON (1 = 1);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -54,12 +53,11 @@ Dynamic SQL Error -Column unknown -T10.ID -At line 5, column 58 - """ @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/arno/derived_tables/test_08.py b/tests/functional/arno/derived_tables/test_08.py index dc45875c..ad2c3e36 100644 --- a/tests/functional/arno/derived_tables/test_08.py +++ b/tests/functional/arno/derived_tables/test_08.py @@ -43,8 +43,7 @@ test_script_1 = """SELECT dt.* FROM Table_10 t10 - FULL JOIN (SELECT * FROM Table_10 t2 WHERE t2.ID = t10.ID) dt ON (1 = 1); -""" +FULL JOIN (SELECT * FROM Table_10 t2 WHERE t2.ID = t10.ID) dt ON (1 = 1);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -54,12 +53,11 @@ Dynamic SQL Error -Column unknown -T10.ID -At line 5, column 58 - """ @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/arno/derived_tables/test_09.py b/tests/functional/arno/derived_tables/test_09.py index 62f30793..6fd1978a 100644 --- a/tests/functional/arno/derived_tables/test_09.py +++ b/tests/functional/arno/derived_tables/test_09.py @@ -43,8 +43,7 @@ test_script_1 = """SELECT dt.* FROM Table_10 t10 - FULL JOIN (SELECT * FROM Table_10 t2 WHERE t2.ID = t10.ID) dt ON (1 = 1); -""" +FULL JOIN (SELECT * FROM Table_10 t2 WHERE t2.ID = t10.ID) dt ON (1 = 1);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -54,12 +53,11 @@ Dynamic SQL Error -Column unknown -T10.ID -At line 5, column 58 - """ @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/arno/derived_tables/test_10.py b/tests/functional/arno/derived_tables/test_10.py index 6633dcee..4e2dde75 100644 --- a/tests/functional/arno/derived_tables/test_10.py +++ b/tests/functional/arno/derived_tables/test_10.py @@ -44,8 +44,7 @@ test_script_1 = """SELECT (SELECT dt.Description FROM (SELECT t1.Description FROM Table_10 t1 WHERE t1.ID = t10.ID) dt) AS Description FROM - Table_10 t10; -""" +Table_10 t10;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -60,11 +59,11 @@ expected_stdout_1 = """ ID DESCRIPTION 6 six 7 seven 8 eight - 9 nine""" +9 nine""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_11.py b/tests/functional/arno/derived_tables/test_11.py index 98a5a2ef..5116123f 100644 --- a/tests/functional/arno/derived_tables/test_11.py +++ b/tests/functional/arno/derived_tables/test_11.py @@ -46,7 +46,7 @@ FROM Table_10 t10 WHERE t10.ID IN (SELECT dt.ID FROM (SELECT t1.ID FROM - Table_10 t1 WHERE t1.ID = t10.ID) dt);""" +Table_10 t1 WHERE t1.ID = t10.ID) dt);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -61,11 +61,11 @@ expected_stdout_1 = """ ID DESCRIPTION 6 six 7 seven 8 eight - 9 nine""" +9 nine""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_12.py b/tests/functional/arno/derived_tables/test_12.py index 48255226..cb990637 100644 --- a/tests/functional/arno/derived_tables/test_12.py +++ b/tests/functional/arno/derived_tables/test_12.py @@ -46,7 +46,7 @@ FROM Table_10 t10 WHERE EXISTS(SELECT dt.ID FROM (SELECT t1.ID FROM - Table_10 t1 WHERE t1.ID = t10.ID) dt);""" +Table_10 t1 WHERE t1.ID = t10.ID) dt);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -61,11 +61,11 @@ expected_stdout_1 = """ ID DESCRIPTION 6 six 7 seven 8 eight - 9 nine""" +9 nine""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_13.py b/tests/functional/arno/derived_tables/test_13.py index f20df0ca..755343f4 100644 --- a/tests/functional/arno/derived_tables/test_13.py +++ b/tests/functional/arno/derived_tables/test_13.py @@ -42,8 +42,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SELECT dt.DESCRIPTION FROM - (SELECT DISTINCT DESCRIPTION FROM Table_10 t10) dt (DESCRIPTION); -""" +(SELECT DISTINCT DESCRIPTION FROM Table_10 t10) dt (DESCRIPTION);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -56,12 +55,11 @@ nine one seven three -two -""" +two""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_14.py b/tests/functional/arno/derived_tables/test_14.py index 9f147bf4..23a184e3 100644 --- a/tests/functional/arno/derived_tables/test_14.py +++ b/tests/functional/arno/derived_tables/test_14.py @@ -45,19 +45,18 @@ test_script_1 = """SELECT FROM (SELECT FIRST 4 SKIP 2 ID, DESCRIPTION FROM Table_10 t10 ORDER BY ID) dt (ID, DESCRIPTION) WHERE - dt.ID >= 4; -""" +dt.ID >= 4;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ID DESCRIPTION ============ =========== 4 four - 5 five""" +5 five""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_15.py b/tests/functional/arno/derived_tables/test_15.py index bebfa275..b3828321 100644 --- a/tests/functional/arno/derived_tables/test_15.py +++ b/tests/functional/arno/derived_tables/test_15.py @@ -45,8 +45,7 @@ test_script_1 = """SELECT FROM (SELECT t1.ID, t1.DESCRIPTION FROM Table_10 t1 WHERE t1.ID <= 4 UNION ALL - SELECT t1.ID, t1.DESCRIPTION FROM Table_10 t1 WHERE t1.ID >= 5) dt (ID, DESCRIPTION); -""" +SELECT t1.ID, t1.DESCRIPTION FROM Table_10 t1 WHERE t1.ID >= 5) dt (ID, DESCRIPTION);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -61,11 +60,11 @@ expected_stdout_1 = """ ID DESCRIPTION 6 six 7 seven 8 eight - 9 nine""" +9 nine""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_16.py b/tests/functional/arno/derived_tables/test_16.py index c96a7454..23882207 100644 --- a/tests/functional/arno/derived_tables/test_16.py +++ b/tests/functional/arno/derived_tables/test_16.py @@ -43,8 +43,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SELECT dt.* FROM - (SELECT t1.GROUPID, Count(t1.ID) FROM Table_10 t1 GROUP BY t1.GROUPID) dt (GROUPID, ID_COUNT); -""" +(SELECT t1.GROUPID, Count(t1.ID) FROM Table_10 t1 GROUP BY t1.GROUPID) dt (GROUPID, ID_COUNT);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -54,12 +53,11 @@ expected_stdout_1 = """ GROUPID ID_COUNT 1 2 2 3 3 4 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_17.py b/tests/functional/arno/derived_tables/test_17.py index 0f4ff813..5230d6b7 100644 --- a/tests/functional/arno/derived_tables/test_17.py +++ b/tests/functional/arno/derived_tables/test_17.py @@ -45,20 +45,18 @@ test_script_1 = """SELECT FROM (SELECT t1.GROUPID, Count(t1.ID) FROM Table_10 t1 GROUP BY t1.GROUPID) dt (GROUPID, ID_COUNT) WHERE - dt.ID_COUNT = 2; -""" +dt.ID_COUNT = 2;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ GROUPID ID_COUNT ============ ===================== 1 2 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_18.py b/tests/functional/arno/derived_tables/test_18.py index ed9f2d47..f53afeb8 100644 --- a/tests/functional/arno/derived_tables/test_18.py +++ b/tests/functional/arno/derived_tables/test_18.py @@ -45,8 +45,7 @@ test_script_1 = """SELECT FROM (SELECT t1.GROUPID, Count(t1.ID) FROM Table_10 t1 GROUP BY t1.GROUPID) dt (GROUPID, ID_COUNT) WHERE - dt.GROUPID >= 2; -""" +dt.GROUPID >= 2;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -54,12 +53,11 @@ expected_stdout_1 = """ GROUPID ID_COUNT ============ ===================== 2 3 3 4 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_19.py b/tests/functional/arno/derived_tables/test_19.py index 2f19d711..68ed4d05 100644 --- a/tests/functional/arno/derived_tables/test_19.py +++ b/tests/functional/arno/derived_tables/test_19.py @@ -43,8 +43,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SELECT dt.* FROM - (SELECT t2.ID, t2.GROUPID, (SELECT t1.GROUPID FROM Table_10 t1 WHERE t1.ID = t2.ID) FROM Table_10 t2) dt (ID, GROUPID1, GROUPID2); -""" +(SELECT t2.ID, t2.GROUPID, (SELECT t1.GROUPID FROM Table_10 t1 WHERE t1.ID = t2.ID) FROM Table_10 t2) dt (ID, GROUPID1, GROUPID2);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -59,11 +58,11 @@ expected_stdout_1 = """ ID GROUPID1 GROUPID2 6 3 3 7 3 3 8 3 3 - 9 3 3""" +9 3 3""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_20.py b/tests/functional/arno/derived_tables/test_20.py index 0b3563f1..2dfa91dc 100644 --- a/tests/functional/arno/derived_tables/test_20.py +++ b/tests/functional/arno/derived_tables/test_20.py @@ -50,8 +50,7 @@ FROM FROM Table_10 t2 GROUP BY - t2.GROUPID) dt (GROUPID, MIN_ID, MAX_ID); -""" +t2.GROUPID) dt (GROUPID, MIN_ID, MAX_ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -60,11 +59,11 @@ expected_stdout_1 = """ GROUPID MIN_ID MAX_ID 1 1 2 2 3 5 - 3 6 9""" +3 6 9""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_21.py b/tests/functional/arno/derived_tables/test_21.py index 0afc25df..474bdd22 100644 --- a/tests/functional/arno/derived_tables/test_21.py +++ b/tests/functional/arno/derived_tables/test_21.py @@ -45,17 +45,17 @@ test_script_1 = """SELECT FROM Table_10 t10 WHERE - t10.ID IN (SELECT MAX(t1.ID) FROM Table_10 t1);""" +t10.ID IN (SELECT MAX(t1.ID) FROM Table_10 t1);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ID DESCRIPTION ============ =========== - 9 nine""" +9 nine""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/derived_tables/test_22.py b/tests/functional/arno/derived_tables/test_22.py index 69e6d1ed..d2b70aa0 100644 --- a/tests/functional/arno/derived_tables/test_22.py +++ b/tests/functional/arno/derived_tables/test_22.py @@ -73,8 +73,7 @@ INSERT INTO TABLEA (ID, DESCRIPTION) VALUES (2, 'Red'); INSERT INTO TABLEA (ID, DESCRIPTION) VALUES (4, 'Green'); INSERT INTO TABLEA (ID, DESCRIPTION) VALUES (8, 'Yellow'); COMMIT; -SELECT * FROM TABLEA; -""" +SELECT * FROM TABLEA;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -83,11 +82,11 @@ expected_stdout_1 = """ ID DESCRIPTION 1 Blue 2 Red 1 4 Green 2 - 8 Yellow 4""" +8 Yellow 4""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_lower_bound_asc_02_segments_01.py b/tests/functional/arno/indices/test_lower_bound_asc_02_segments_01.py index 72ade32e..9a98e922 100644 --- a/tests/functional/arno/indices/test_lower_bound_asc_02_segments_01.py +++ b/tests/functional/arno/indices/test_lower_bound_asc_02_segments_01.py @@ -61,7 +61,7 @@ SELECT FROM Table_2_10 t WHERE - t.F1 = 2 and t.F2 >= 6;""" +t.F1 = 2 and t.F2 >= 6;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -74,12 +74,11 @@ expected_stdout_1 = """PLAN (T INDEX (I_TABLE_2_10_ASC)) 2 7 2 8 2 9 - 2 10 -""" +2 10""" @pytest.mark.version('>=1.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_lower_bound_desc_02_segments_01.py b/tests/functional/arno/indices/test_lower_bound_desc_02_segments_01.py index ca66231c..0f285cc3 100644 --- a/tests/functional/arno/indices/test_lower_bound_desc_02_segments_01.py +++ b/tests/functional/arno/indices/test_lower_bound_desc_02_segments_01.py @@ -61,7 +61,7 @@ SELECT FROM Table_2_10 t WHERE - t.F1 = 2 and t.F2 <= 5;""" +t.F1 = 2 and t.F2 <= 5;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -74,12 +74,11 @@ expected_stdout_1 = """PLAN (T INDEX (I_TABLE_2_10_DESC)) 2 2 2 3 2 4 - 2 5 -""" +2 5""" @pytest.mark.version('>=1.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_starting_with_01.py b/tests/functional/arno/indices/test_starting_with_01.py index 0e7c7bd1..f5e9bc27 100644 --- a/tests/functional/arno/indices/test_starting_with_01.py +++ b/tests/functional/arno/indices/test_starting_with_01.py @@ -69,8 +69,7 @@ SET TERM ;^ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SET PLAN OFF; -SELECT O_FIELD, O_COUNT FROM PR_A_TEST_STARTING_WITH(''); -""" +SELECT O_FIELD, O_COUNT FROM PR_A_TEST_STARTING_WITH('');""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -85,5 +84,5 @@ F3 - NOT INDEXED 3""" def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_starting_with_02.py b/tests/functional/arno/indices/test_starting_with_02.py index 1f6f1972..4dbfaa9c 100644 --- a/tests/functional/arno/indices/test_starting_with_02.py +++ b/tests/functional/arno/indices/test_starting_with_02.py @@ -69,8 +69,7 @@ SET TERM ;^ db_1 = db_factory(charset='ISO8859_1', sql_dialect=3, init=init_script_1) test_script_1 = """SET PLAN OFF; -SELECT O_FIELD, O_COUNT FROM PR_A_TEST_STARTING_WITH(''); -""" +SELECT O_FIELD, O_COUNT FROM PR_A_TEST_STARTING_WITH('');""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -85,5 +84,5 @@ F3 - NOT INDEXED 3""" def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_timestamps_01.py b/tests/functional/arno/indices/test_timestamps_01.py index 3dac7a56..80d6ebb9 100644 --- a/tests/functional/arno/indices/test_timestamps_01.py +++ b/tests/functional/arno/indices/test_timestamps_01.py @@ -53,7 +53,7 @@ test_script_1 = """ e.begindatetime >= '1700-01-01' order by begindatetime asc; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -66,11 +66,11 @@ expected_stdout_1 = """ 1858-11-17 00:00:00.0000 1858-11-17 00:00:00.0000 1858-11-18 16:00:00.0000 1858-11-18 17:00:00.0000 2004-04-08 02:00:00.0000 2004-04-08 02:09:00.0000 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_upper_bound_asc_01_segments_01.py b/tests/functional/arno/indices/test_upper_bound_asc_01_segments_01.py index eb1bc3cc..4b1ab6d8 100644 --- a/tests/functional/arno/indices/test_upper_bound_asc_01_segments_01.py +++ b/tests/functional/arno/indices/test_upper_bound_asc_01_segments_01.py @@ -63,7 +63,7 @@ SELECT FROM Table_66 t66 WHERE - t66.ID <= -131072;""" +t66.ID <= -131072;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -86,11 +86,11 @@ expected_stdout_1 = """PLAN (T66 INDEX (I_TABLE_66_ASC)) -1048576 -524288 -262144 - -131072""" +-131072""" @pytest.mark.version('>=1.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_upper_bound_asc_01_segments_02.py b/tests/functional/arno/indices/test_upper_bound_asc_01_segments_02.py index 1a82eb6e..adb4c021 100644 --- a/tests/functional/arno/indices/test_upper_bound_asc_01_segments_02.py +++ b/tests/functional/arno/indices/test_upper_bound_asc_01_segments_02.py @@ -63,7 +63,7 @@ SELECT FROM Table_66 t66 WHERE - t66.ID < 0;""" +t66.ID < 0;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -106,12 +106,11 @@ expected_stdout_1 = """PLAN (T66 INDEX (I_TABLE_66_ASC)) -8 -4 -2 - -1 -""" +-1""" @pytest.mark.version('>=1.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_upper_bound_asc_01_segments_03.py b/tests/functional/arno/indices/test_upper_bound_asc_01_segments_03.py index 1f5db26b..a0d58a78 100644 --- a/tests/functional/arno/indices/test_upper_bound_asc_01_segments_03.py +++ b/tests/functional/arno/indices/test_upper_bound_asc_01_segments_03.py @@ -51,7 +51,7 @@ SELECT FROM Table_A15 a15 WHERE - a15.ID <= 'AAAAB';""" +a15.ID <= 'AAAAB';""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -64,12 +64,11 @@ A AA AAA AAAA -AAAAB -""" +AAAAB""" @pytest.mark.version('>=1.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_upper_bound_asc_01_segments_04.py b/tests/functional/arno/indices/test_upper_bound_asc_01_segments_04.py index 1d58672e..d7212532 100644 --- a/tests/functional/arno/indices/test_upper_bound_asc_01_segments_04.py +++ b/tests/functional/arno/indices/test_upper_bound_asc_01_segments_04.py @@ -51,7 +51,7 @@ SELECT FROM Table_A15 a15 WHERE - a15.ID < 'AAAB';""" +a15.ID < 'AAAB';""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -64,12 +64,11 @@ A AA AAA AAAA -AAAAB -""" +AAAAB""" @pytest.mark.version('>=1.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_upper_bound_asc_02_segments_01.py b/tests/functional/arno/indices/test_upper_bound_asc_02_segments_01.py index 4f0237d9..0be6a444 100644 --- a/tests/functional/arno/indices/test_upper_bound_asc_02_segments_01.py +++ b/tests/functional/arno/indices/test_upper_bound_asc_02_segments_01.py @@ -61,7 +61,7 @@ SELECT FROM Table_2_10 t WHERE - t.F1 = 2 and t.F2 <= 5;""" +t.F1 = 2 and t.F2 <= 5;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -74,12 +74,11 @@ expected_stdout_1 = """PLAN (T INDEX (I_TABLE_2_10_ASC)) 2 2 2 3 2 4 - 2 5 -""" +2 5""" @pytest.mark.version('>=1.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_upper_bound_desc_01_segments_01.py b/tests/functional/arno/indices/test_upper_bound_desc_01_segments_01.py index 29364857..c258ed1f 100644 --- a/tests/functional/arno/indices/test_upper_bound_desc_01_segments_01.py +++ b/tests/functional/arno/indices/test_upper_bound_desc_01_segments_01.py @@ -63,7 +63,7 @@ SELECT FROM Table_66 t66 WHERE - t66.ID >= 131071;""" +t66.ID >= 131071;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -86,12 +86,11 @@ expected_stdout_1 = """PLAN (T66 INDEX (I_TABLE_66_DESC)) 1048575 524287 262143 - 131071 -""" +131071""" @pytest.mark.version('>=1.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_upper_bound_desc_01_segments_02.py b/tests/functional/arno/indices/test_upper_bound_desc_01_segments_02.py index 5e6e1962..9aa64f63 100644 --- a/tests/functional/arno/indices/test_upper_bound_desc_01_segments_02.py +++ b/tests/functional/arno/indices/test_upper_bound_desc_01_segments_02.py @@ -63,7 +63,7 @@ SELECT FROM Table_66 t66 WHERE - t66.ID > 131071;""" +t66.ID > 131071;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -85,12 +85,11 @@ expected_stdout_1 = """PLAN (T66 INDEX (I_TABLE_66_DESC)) 2097151 1048575 524287 - 262143 -""" +262143""" @pytest.mark.version('>=1.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_upper_bound_desc_02_segments_01.py b/tests/functional/arno/indices/test_upper_bound_desc_02_segments_01.py index 1da6f7d1..778fd7fd 100644 --- a/tests/functional/arno/indices/test_upper_bound_desc_02_segments_01.py +++ b/tests/functional/arno/indices/test_upper_bound_desc_02_segments_01.py @@ -61,7 +61,7 @@ SELECT FROM Table_2_10 t WHERE - t.F1 = 1 and t.F2 >= 6;""" +t.F1 = 1 and t.F2 >= 6;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -74,12 +74,11 @@ expected_stdout_1 = """PLAN (T INDEX (I_TABLE_2_10_DESC)) 1 7 1 8 1 9 - 1 10 -""" +1 10""" @pytest.mark.version('>=1.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/indices/test_upper_lower_bounds_01.py b/tests/functional/arno/indices/test_upper_lower_bounds_01.py index ea88e06c..fdb8c5a1 100644 --- a/tests/functional/arno/indices/test_upper_lower_bounds_01.py +++ b/tests/functional/arno/indices/test_upper_lower_bounds_01.py @@ -4,13 +4,13 @@ # title: upper and lower bounds # decription: equal comparison should be prefered. # Lower and Upper bounds are bound by the same value. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 3.0 # qmid: functional.arno.indexes.upper_lower_bounds_01 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -81,35 +81,45 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # def show(self): # print ('sequential : ',self.sequential) # print ('indexed : ',self.indexed) -# +# # cursor=db_conn.cursor() -# +# # ri = readsInformation() # ri.start() -# +# # cursor.execute("SELECT Count(*) FROM Table_1000 t1000 WHERE t1000.ID > 1 and t1000.ID >= 100 and t1000.ID = 500 and t1000.ID <= 900 and t1000.ID < 1000") # printData(cursor) -# +# # # Get statistics and put out differences # ri.difference() # ri.show() -# +# # #SET PLAN ON; # #SET STATS ON; # #SELECT B.B_INFO, A.A_VALUE FROM TableB B LEFT JOIN TableA A ON (1 = 0); #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """COUNT --------------------- -1 -sequential : {} -indexed : {128: 1} -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + sequential = {} + indexed = {} + with act_1.db.connect() as con: + for tbl in con.info.get_table_access_stats(): + if tbl.table_id >= 128: + sequential[tbl.table_id] = tbl.sequential + indexed[tbl.table_id] = tbl.indexed + with con.cursor() as c: + c.execute("SELECT Count(*) FROM Table_1000 t1000 WHERE t1000.ID > 1 and t1000.ID >= 100 and t1000.ID = 500 and t1000.ID <= 900 and t1000.ID < 1000") + cnt = c.fetchone()[0] + for tbl in con.info.get_table_access_stats(): + if tbl.table_id >= 128: + if tbl.sequential: + sequential[tbl.table_id] = tbl.sequential - sequential.get(tbl.table_id, 0) + if tbl.indexed: + indexed[tbl.table_id] = tbl.indexed - indexed.get(tbl.table_id, 0) + # Check + assert cnt == 1 + assert sequential == {} + assert indexed == {128: 1} diff --git a/tests/functional/arno/indices/test_upper_lower_bounds_02.py b/tests/functional/arno/indices/test_upper_lower_bounds_02.py index 1197b65b..34523a34 100644 --- a/tests/functional/arno/indices/test_upper_lower_bounds_02.py +++ b/tests/functional/arno/indices/test_upper_lower_bounds_02.py @@ -3,13 +3,13 @@ # id: functional.arno.indices.upper_lower_bounds_02 # title: upper and lower bounds # decription: "Less or equal than" should be prefered above "less than" and "greater or equal than" above "greater than". -# tracker_id: +# tracker_id: # min_versions: [] # versions: 3.0 # qmid: functional.arno.indexes.upper_lower_bounds_02 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -80,35 +80,45 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # def show(self): # print ('sequential : ',self.sequential) # print ('indexed : ',self.indexed) -# +# # cursor=db_conn.cursor() -# +# # ri = readsInformation() # ri.start() -# +# # cursor.execute("SELECT Count(*) FROM Table_1000 t1000 WHERE t1000.ID > 1 and t1000.ID >= 400 and t1000.ID <= 600 and t1000.ID < 1000") # printData(cursor) -# +# # # Get statistics and put out differences # ri.difference() # ri.show() -# +# # #SET PLAN ON; # #SET STATS ON; # #SELECT B.B_INFO, A.A_VALUE FROM TableB B LEFT JOIN TableA A ON (1 = 0); #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """COUNT --------------------- -201 -sequential : {} -indexed : {128: 201} -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + sequential = {} + indexed = {} + with act_1.db.connect() as con: + for tbl in con.info.get_table_access_stats(): + if tbl.table_id >= 128: + sequential[tbl.table_id] = tbl.sequential + indexed[tbl.table_id] = tbl.indexed + with con.cursor() as c: + c.execute("SELECT Count(*) FROM Table_1000 t1000 WHERE t1000.ID > 1 and t1000.ID >= 400 and t1000.ID <= 600 and t1000.ID < 1000") + cnt = c.fetchone()[0] + for tbl in con.info.get_table_access_stats(): + if tbl.table_id >= 128: + if tbl.sequential: + sequential[tbl.table_id] = tbl.sequential - sequential.get(tbl.table_id, 0) + if tbl.indexed: + indexed[tbl.table_id] = tbl.indexed - indexed.get(tbl.table_id, 0) + # Check + assert cnt == 201 + assert sequential == {} + assert indexed == {128: 201} diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_01.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_01.py index 76266bcd..63c558fe 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_01.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_01.py @@ -74,7 +74,7 @@ FROM GROUP BY f.ColorID, c.ColorName HAVING - Count(*) >= 2;""" +Count(*) >= 2;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -86,12 +86,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (F NATURAL, C INDEX (PK_COLORS))) 2 White 2 3 Blue 2 4 Yellow 2 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_02.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_02.py index f2455440..6d7f111f 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_02.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_02.py @@ -81,7 +81,7 @@ HAVING Count(DISTINCT f.FlowerID) >= 2 and MIN(DISTINCT f.FlowerID) >= 1 and MAX(DISTINCT f.FlowerID) >= 1 and - AVG(DISTINCT f.FlowerID) >= 1;""" +AVG(DISTINCT f.FlowerID) >= 1;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -93,12 +93,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (F NATURAL, C INDEX (PK_COLORS))) 2 White 2 3 Blue 2 4 Yellow 2 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_03.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_03.py index 5bc04748..473f6687 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_03.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_03.py @@ -74,7 +74,7 @@ FROM GROUP BY f.ColorID, c.ColorName HAVING - f.ColorID = 1;""" +f.ColorID = 1;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -83,12 +83,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (F INDEX (FK_FLOWERS_COLORS), C INDEX (PK COLORID COLORNAME COUNT ============ ==================== ===================== 1 Red 2 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_04.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_04.py index 3d189353..4e12bedb 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_04.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_04.py @@ -82,7 +82,7 @@ HAVING Count(DISTINCT f.FlowerID) >= 2 and MIN(DISTINCT f.FlowerID) >= 1 and MAX(DISTINCT f.FlowerID) >= 1 and - AVG(DISTINCT f.FlowerID) >= 1;""" +AVG(DISTINCT f.FlowerID) >= 1;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -91,12 +91,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (F INDEX (FK_FLOWERS_COLORS), C INDEX (PK COLORID COLORNAME COUNT ============ ==================== ===================== 2 White 2 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_05.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_05.py index 12cf924c..bc7f78c6 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_05.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_05.py @@ -88,7 +88,7 @@ SELECT FROM UsedColors v WHERE - v.ColorID >= 1;""" +v.ColorID >= 1;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -102,12 +102,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (V F INDEX (FK_FLOWERS_COLORS), V C INDEX 4 Yellow 2 5 Black 1 6 Purple 1 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_06.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_06.py index 88a60888..00b5d9c1 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_06.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_06.py @@ -90,7 +90,7 @@ FROM WHERE v.ColorID >= 2 and v.ColorID <= 5 and - v.ColorUsed = 2;""" +v.ColorUsed = 2;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -101,12 +101,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (V F INDEX (FK_FLOWERS_COLORS), V C INDEX 2 White 2 3 Blue 2 4 Yellow 2 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_07.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_07.py index ab935a22..0665617f 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_07.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_07.py @@ -74,7 +74,7 @@ FROM GROUP BY f.ColorID, c.ColorName HAVING - f.ColorID >= 1;""" +f.ColorID >= 1;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -88,12 +88,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (F INDEX (FK_FLOWERS_COLORS), C INDEX (PK 4 Yellow 2 5 Black 1 6 Purple 1 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_08.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_08.py index fdfeede0..7b4609ac 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_08.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_08.py @@ -74,7 +74,7 @@ FROM GROUP BY f.ColorID, c.ColorName HAVING - f.ColorID > 1;""" +f.ColorID > 1;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -87,12 +87,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (F INDEX (FK_FLOWERS_COLORS), C INDEX (PK 4 Yellow 2 5 Black 1 6 Purple 1 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_09.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_09.py index cf97bd58..903ccd4e 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_09.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_09.py @@ -74,7 +74,7 @@ FROM GROUP BY f.ColorID, c.ColorName HAVING - f.ColorID <= 4;""" +f.ColorID <= 4;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -86,12 +86,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (F INDEX (FK_FLOWERS_COLORS), C INDEX (PK 2 White 2 3 Blue 2 4 Yellow 2 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_10.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_10.py index 588b42aa..fba6f9a7 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_10.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_10.py @@ -74,7 +74,7 @@ FROM GROUP BY f.ColorID, c.ColorName HAVING - f.ColorID < 5;""" +f.ColorID < 5;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -86,12 +86,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (F INDEX (FK_FLOWERS_COLORS), C INDEX (PK 2 White 2 3 Blue 2 4 Yellow 2 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_11.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_11.py index ec849bfe..9d3c12a6 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_11.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_11.py @@ -74,7 +74,7 @@ FROM GROUP BY f.ColorID, c.ColorName HAVING - f.ColorID BETWEEN 2 and 4;""" +f.ColorID BETWEEN 2 and 4;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -85,12 +85,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (F INDEX (FK_FLOWERS_COLORS), C INDEX (PK 2 White 2 3 Blue 2 4 Yellow 2 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_12.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_12.py index 5dd3d2b8..7e86ebd8 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_12.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_12.py @@ -74,16 +74,15 @@ FROM GROUP BY f.ColorID, c.ColorName HAVING - f.ColorID IS NULL;""" +f.ColorID IS NULL;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """PLAN SORT (JOIN (F INDEX (FK_FLOWERS_COLORS), C INDEX (PK_COLORS))) -""" +expected_stdout_1 = """PLAN SORT (JOIN (F INDEX (FK_FLOWERS_COLORS), C INDEX (PK_COLORS)))""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_13.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_13.py index a7279cbe..cd244740 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_13.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_13.py @@ -75,7 +75,7 @@ FROM GROUP BY f.ColorID, c.ColorName HAVING - c.ColorName STARTING WITH 'B';""" +c.ColorName STARTING WITH 'B';""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -85,12 +85,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (C INDEX (I_COLORS_COLORNAME), F INDEX (F ============ ==================== ===================== 3 Blue 2 5 Black 1 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_14.py b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_14.py index 49e25136..4c846dd4 100644 --- a/tests/functional/arno/optimizer/test_opt_aggregate_distribution_14.py +++ b/tests/functional/arno/optimizer/test_opt_aggregate_distribution_14.py @@ -75,7 +75,7 @@ FROM GROUP BY f.ColorID, c.ColorName HAVING - c.ColorName LIKE 'B%';""" +c.ColorName LIKE 'B%';""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -85,12 +85,11 @@ expected_stdout_1 = """PLAN SORT (JOIN (C INDEX (I_COLORS_COLORNAME), F INDEX (F ============ ==================== ===================== 3 Blue 2 5 Black 1 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_avoid_index_usage.py b/tests/functional/arno/optimizer/test_opt_avoid_index_usage.py index bf9f6e00..9946d004 100644 --- a/tests/functional/arno/optimizer/test_opt_avoid_index_usage.py +++ b/tests/functional/arno/optimizer/test_opt_avoid_index_usage.py @@ -37,7 +37,7 @@ test_script_1 = """ select * from t where y < 0; select * from t where x between 0 and 1; select * from t where y between 0 and 1; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -48,11 +48,11 @@ expected_stdout_1 = """ PLAN (T NATURAL) PLAN (T NATURAL) PLAN (T NATURAL) - """ +""" @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_full_join_01.py b/tests/functional/arno/optimizer/test_opt_full_join_01.py index 82078fc8..f546935c 100644 --- a/tests/functional/arno/optimizer/test_opt_full_join_01.py +++ b/tests/functional/arno/optimizer/test_opt_full_join_01.py @@ -2,14 +2,14 @@ # # id: functional.arno.optimizer.opt_full_join_01 # title: FULL OUTER JOIN, list all values -# decription: +# decription: # TableX FULL OUTER JOIN TableY with relation in the ON clause. -# Three tables are used, where 1 table (RC) holds references to the two other tables (R and C). +# Three tables are used, where 1 table (RC) holds references to the two other tables (R and C). # The two tables R and C contain both 1 value that isn't inside RC. # ===== # Refactored 01-mar-2016. Checked on: WI-V2.5.6.26970, WI-V3.0.0.32366 -# -# tracker_id: +# +# tracker_id: # min_versions: ['2.5.0'] # versions: 2.5 # qmid: functional.arno.optimizer.opt_full_join_01 @@ -22,51 +22,94 @@ from firebird.qa import db_factory, isql_act, Action substitutions_1 = [('=', ''), ('[ \t]+', ' ')] -init_script_1 = """""" +init_script_1 = """ + create table relations ( + relationid integer, + relationname varchar(35) + ); + + create table categories ( + categoryid integer, + description varchar(20) + ); + + create table relationcategories ( + relationid integer, + categoryid integer + ); + commit; + + insert into relations (relationid, relationname) values (1, 'diving snorkel shop'); + insert into relations (relationid, relationname) values (2, 'bakery garbage'); + insert into relations (relationid, relationname) values (3, 'racing turtle'); + insert into relations (relationid, relationname) values (4, 'folding air-hook shop'); + + insert into categories (categoryid, description) values (1, 'relation'); + insert into categories (categoryid, description) values (2, 'debtor'); + insert into categories (categoryid, description) values (3, 'creditor'); + insert into categories (categoryid, description) values (4, 'newsletter'); + + insert into relationcategories (relationid, categoryid) values (1, 1); + insert into relationcategories (relationid, categoryid) values (2, 1); + insert into relationcategories (relationid, categoryid) values (3, 1); + insert into relationcategories (relationid, categoryid) values (1, 2); + insert into relationcategories (relationid, categoryid) values (2, 2); + insert into relationcategories (relationid, categoryid) values (1, 3); + commit; + + -- Normally these indexes are created by the primary/foreign keys, + -- but we don't want to rely on them for this test + create unique asc index pk_relations on relations (relationid); + create unique asc index pk_categories on categories (categoryid); + create unique asc index pk_relationcategories on relationcategories (relationid, categoryid); + create asc index fk_rc_relations on relationcategories (relationid); + create asc index fk_rc_categories on relationcategories (categoryid); + commit; +""" db_1 = db_factory(sql_dialect=3, init=init_script_1) # test_script_1 #--- -# +# # import os # import sys # import time # import subprocess -# +# # os.environ["ISC_USER"] = user_name # os.environ["ISC_PASSWORD"] = user_password -# +# # engine = str(db_conn.engine_version) # db_conn.close() -# +# # sql_cmd=''' # create table relations ( # relationid integer, # relationname varchar(35) # ); -# +# # create table categories ( # categoryid integer, # description varchar(20) # ); -# +# # create table relationcategories ( # relationid integer, # categoryid integer # ); # commit; -# +# # insert into relations (relationid, relationname) values (1, 'diving snorkel shop'); # insert into relations (relationid, relationname) values (2, 'bakery garbage'); # insert into relations (relationid, relationname) values (3, 'racing turtle'); # insert into relations (relationid, relationname) values (4, 'folding air-hook shop'); -# +# # insert into categories (categoryid, description) values (1, 'relation'); # insert into categories (categoryid, description) values (2, 'debtor'); # insert into categories (categoryid, description) values (3, 'creditor'); # insert into categories (categoryid, description) values (4, 'newsletter'); -# +# # insert into relationcategories (relationid, categoryid) values (1, 1); # insert into relationcategories (relationid, categoryid) values (2, 1); # insert into relationcategories (relationid, categoryid) values (3, 1); @@ -74,7 +117,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # insert into relationcategories (relationid, categoryid) values (2, 2); # insert into relationcategories (relationid, categoryid) values (1, 3); # commit; -# +# # -- Normally these indexes are created by the primary/foreign keys, # -- but we don't want to rely on them for this test # create unique asc index pk_relations on relations (relationid); @@ -83,7 +126,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # create asc index fk_rc_relations on relationcategories (relationid); # create asc index fk_rc_categories on relationcategories (categoryid); # commit; -# +# # set plan on; # -- set list on; # -- FULL JOIN should return ... @@ -101,20 +144,20 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ,rc.categoryid # ,c.description # ; -# ''' +# ''' # f_sql=open( os.path.join(context['temp_directory'],'tmp_opt_full_join_01.tmp'), 'w') # f_sql.write(sql_cmd) # f_sql.close() -# +# # f_log = open( os.path.join(context['temp_directory'],'tmp_opt_full_join_01.log'), 'w') -# +# # subprocess.call( [ context['isql_path'], dsn, "-i", f_sql.name], # stdout=f_log, # stderr=subprocess.STDOUT # ) # f_log.close() # time.sleep(1) -# +# # plan_25 = 'PLAN SORT (JOIN (C NATURAL, JOIN (RC NATURAL, R NATURAL)))' # plan_30 = 'PLAN SORT (JOIN (JOIN (C NATURAL, JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS)))), JOIN (JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS))), C NATURAL)))' # with open(f_log.name) as f: @@ -124,7 +167,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # plan_expected=plan_25 # else: # plan_expected=plan_30 -# +# # # Remove trailing whitespaces and newline character: # if line.upper().rstrip() == plan_expected: # print( 'Actual plan plan coincides with the expected.' ) @@ -132,16 +175,38 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # print( 'Actual plan: '+line+' - differs from expected: '+plan_expected) # else: # print(line ) -# +# # os.remove(f_log.name) # os.remove(f_sql.name) -# -# +# +# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +test_script_1 = """ + set plan on; + -- set list on; + -- FULL JOIN should return ... + select + r.relationname, + rc.relationid, + rc.categoryid, + c.description + from relations r + full join relationcategories rc on (rc.relationid = r.relationid) + full join categories c on (c.categoryid = rc.categoryid) + order by + rc.relationid desc + ,r.relationname + ,rc.categoryid + ,c.description + ; +""" + +act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ - Actual plan plan coincides with the expected. + PLAN SORT (JOIN (JOIN (C NATURAL, JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS)))), JOIN (JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS))), C NATURAL))) + RELATIONNAME RELATIONID CATEGORYID DESCRIPTION =================================== ============ ============ ============= racing turtle 3 1 relation @@ -152,11 +217,12 @@ expected_stdout_1 = """ diving snorkel shop 1 3 creditor newsletter folding air-hook shop - """ +""" -@pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") +@pytest.mark.version('>=3.0') +def test_1(act_1: Action): + act_1.expected_stdout = expected_stdout_1 + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_full_join_02.py b/tests/functional/arno/optimizer/test_opt_full_join_02.py index d29df617..70c0a08a 100644 --- a/tests/functional/arno/optimizer/test_opt_full_join_02.py +++ b/tests/functional/arno/optimizer/test_opt_full_join_02.py @@ -2,18 +2,18 @@ # # id: functional.arno.optimizer.opt_full_join_02 # title: FULL OUTER JOIN, list all values, but filtered in WHERE clause -# decription: +# decription: # TableX FULL OUTER JOIN TableY with relation in the ON clause. -# Three tables are used, where 1 table (RC) holds references to the two other tables (R and C). +# Three tables are used, where 1 table (RC) holds references to the two other tables (R and C). # The two tables R and C contain both 1 value that isn't inside RC. # ===== # Refactored 01-mar-2016. Checked on: WI-V2.5.6.26970, WI-V3.0.0.32366 -# +# # 27.12.2020: added 'rc.categoryid' to 'order by' list in order to have always stable sort result. # Mismatch with expected result due to different position of records with the same 'rc.relationid' # occured on 4.0.0.2298. CHecked on 4.0.0.2303. -# -# tracker_id: +# +# tracker_id: # min_versions: ['2.5.0'] # versions: 2.5 # qmid: functional.arno.optimizer.opt_full_join_02 @@ -26,50 +26,93 @@ from firebird.qa import db_factory, isql_act, Action substitutions_1 = [('=', ''), ('[ \t]+', ' ')] -init_script_1 = """""" +init_script_1 = """ + create table relations ( + relationid integer, + relationname varchar(35) + ); + + create table categories ( + categoryid integer, + description varchar(20) + ); + + create table relationcategories ( + relationid integer, + categoryid integer + ); + commit; + + insert into relations (relationid, relationname) values (1, 'diving snorkel shop'); + insert into relations (relationid, relationname) values (2, 'bakery garbage'); + insert into relations (relationid, relationname) values (3, 'racing turtle'); + insert into relations (relationid, relationname) values (4, 'folding air-hook shop'); + + insert into categories (categoryid, description) values (1, 'relation'); + insert into categories (categoryid, description) values (2, 'debtor'); + insert into categories (categoryid, description) values (3, 'creditor'); + insert into categories (categoryid, description) values (4, 'newsletter'); + + insert into relationcategories (relationid, categoryid) values (1, 1); + insert into relationcategories (relationid, categoryid) values (2, 1); + insert into relationcategories (relationid, categoryid) values (3, 1); + insert into relationcategories (relationid, categoryid) values (1, 2); + insert into relationcategories (relationid, categoryid) values (2, 2); + insert into relationcategories (relationid, categoryid) values (1, 3); + commit; + + -- normally these indexes are created by the primary/foreign keys, + -- but we don't want to rely on them for this test + create unique asc index pk_relations on relations (relationid); + create unique asc index pk_categories on categories (categoryid); + create unique asc index pk_relationcategories on relationcategories (relationid, categoryid); + create asc index fk_rc_relations on relationcategories (relationid); + create asc index fk_rc_categories on relationcategories (categoryid); + commit; +""" db_1 = db_factory(sql_dialect=3, init=init_script_1) # test_script_1 #--- -# +# # import os # import sys # import time # import subprocess -# +# # os.environ["ISC_USER"] = user_name # os.environ["ISC_PASSWORD"] = user_password # engine = str(db_conn.engine_version) # db_conn.close() -# +# # sql_cmd=''' # create table relations ( # relationid integer, # relationname varchar(35) # ); -# +# # create table categories ( # categoryid integer, # description varchar(20) # ); -# +# # create table relationcategories ( # relationid integer, # categoryid integer # ); # commit; -# +# # insert into relations (relationid, relationname) values (1, 'diving snorkel shop'); # insert into relations (relationid, relationname) values (2, 'bakery garbage'); # insert into relations (relationid, relationname) values (3, 'racing turtle'); # insert into relations (relationid, relationname) values (4, 'folding air-hook shop'); -# +# # insert into categories (categoryid, description) values (1, 'relation'); # insert into categories (categoryid, description) values (2, 'debtor'); # insert into categories (categoryid, description) values (3, 'creditor'); # insert into categories (categoryid, description) values (4, 'newsletter'); -# +# # insert into relationcategories (relationid, categoryid) values (1, 1); # insert into relationcategories (relationid, categoryid) values (2, 1); # insert into relationcategories (relationid, categoryid) values (3, 1); @@ -77,7 +120,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # insert into relationcategories (relationid, categoryid) values (2, 2); # insert into relationcategories (relationid, categoryid) values (1, 3); # commit; -# +# # -- normally these indexes are created by the primary/foreign keys, # -- but we don't want to rely on them for this test # create unique asc index pk_relations on relations (relationid); @@ -86,10 +129,10 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # create asc index fk_rc_relations on relationcategories (relationid); # create asc index fk_rc_categories on relationcategories (categoryid); # commit; -# +# # set plan on; # --set list on; -# +# # --full join should return ... # select # r.relationname, @@ -107,20 +150,20 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ,rc.categoryid # ; # ''' -# +# # f_sql=open( os.path.join(context['temp_directory'],'tmp_opt_full_join_02.tmp'), 'w') # f_sql.write(sql_cmd) # f_sql.close() -# +# # f_log = open( os.path.join(context['temp_directory'],'tmp_opt_full_join_02.log'), 'w') -# +# # subprocess.call( [context['isql_path'], dsn, "-i", f_sql.name], # stdout=f_log, # stderr=subprocess.STDOUT # ) # f_log.close() # time.sleep(1) -# +# # plan_25 = 'PLAN SORT (JOIN (C NATURAL, JOIN (RC NATURAL, R INDEX (PK_RELATIONS))))' # plan_30 = 'PLAN SORT (JOIN (JOIN (C NATURAL, JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R INDEX (PK_RELATIONS), RC INDEX (FK_RC_RELATIONS)))), JOIN (JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R INDEX (PK_RELATIONS), RC INDEX (FK_RC_RELATIONS))), C NATURAL)))' # with open(f_log.name) as f: @@ -130,7 +173,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # plan_expected=plan_25 # else: # plan_expected=plan_30 -# +# # # Remove trailing whitespaces and newline character: # if line.upper().rstrip() == plan_expected: # print( 'Actual plan plan coincides with the expected.' ) @@ -138,30 +181,52 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # print( 'Actual plan: '+line+' - differs from expected: '+plan_expected) # else: # print(line ) -# +# # # Cleanup # ######### # os.remove(f_log.name) # os.remove(f_sql.name) -# -# +# +# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +test_script_1 = """ + set plan on; + --set list on; + + --full join should return ... + select + r.relationname, + rc.relationid, + rc.categoryid, + c.description + from + relations r + full join relationcategories rc on (rc.relationid = r.relationid) + full join categories c on (c.categoryid = rc.categoryid) + where + r.relationid >= 2 + order by + rc.relationid desc + ,rc.categoryid + ; +""" + +act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ - Actual plan plan coincides with the expected. + PLAN SORT (JOIN (JOIN (C NATURAL, JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R INDEX (PK_RELATIONS), RC INDEX (FK_RC_RELATIONS)))), JOIN (JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R INDEX (PK_RELATIONS), RC INDEX (FK_RC_RELATIONS))), C NATURAL))) RELATIONNAME RELATIONID CATEGORYID DESCRIPTION =================================== ============ ============ ============ racing turtle 3 1 relation bakery garbage 2 1 relation bakery garbage 2 2 debtor - folding air-hook shop - """ - -@pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - + folding air-hook shop +""" +@pytest.mark.version('>=3.0') +def test_1(act_1: Action): + act_1.expected_stdout = expected_stdout_1 + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_full_join_03.py b/tests/functional/arno/optimizer/test_opt_full_join_03.py index 2a00622f..4a9e0504 100644 --- a/tests/functional/arno/optimizer/test_opt_full_join_03.py +++ b/tests/functional/arno/optimizer/test_opt_full_join_03.py @@ -2,14 +2,14 @@ # # id: functional.arno.optimizer.opt_full_join_03 # title: FULL OUTER JOIN, list all values, but filtered in WHERE clause -# decription: +# decription: # TableX FULL OUTER JOIN TableY with relation in the ON clause. -# Three tables are used, where 1 table (RC) holds references to the two other tables (R and C). +# Three tables are used, where 1 table (RC) holds references to the two other tables (R and C). # The two tables R and C contain both 1 value that isn't inside RC. # ===== # Refactored 01-mar-2016. Checked on: WI-V2.5.6.26970, WI-V3.0.0.32366 -# -# tracker_id: +# +# tracker_id: # min_versions: ['2.5.0'] # versions: 2.5 # qmid: functional.arno.optimizer.opt_full_join_03 @@ -22,59 +22,104 @@ from firebird.qa import db_factory, isql_act, Action substitutions_1 = [] -init_script_1 = """""" +init_script_1 = """ + create table relations ( + relationid integer, + relationname varchar(35) + ); + + create table categories ( + categoryid integer, + description varchar(20) + ); + + create table relationcategories ( + relationid integer, + categoryid integer + ); + commit; + + insert into relations (relationid, relationname) values (1, 'diving snorkel shop'); + insert into relations (relationid, relationname) values (2, 'bakery garbage'); + insert into relations (relationid, relationname) values (3, 'racing turtle'); + insert into relations (relationid, relationname) values (4, 'folding air-hook shop'); + + insert into categories (categoryid, description) values (1, 'relation'); + insert into categories (categoryid, description) values (2, 'debtor'); + insert into categories (categoryid, description) values (3, 'creditor'); + insert into categories (categoryid, description) values (4, 'newsletter'); + + insert into relationcategories (relationid, categoryid) values (1, 1); + insert into relationcategories (relationid, categoryid) values (2, 1); + insert into relationcategories (relationid, categoryid) values (3, 1); + insert into relationcategories (relationid, categoryid) values (1, 2); + insert into relationcategories (relationid, categoryid) values (2, 2); + insert into relationcategories (relationid, categoryid) values (1, 3); + + commit; + + -- Normally these indexes are created by the primary/foreign keys, + -- but we don't want to rely on them for this test + create unique asc index pk_relations on relations (relationid); + create unique asc index pk_categories on categories (categoryid); + create unique asc index pk_relationcategories on relationcategories (relationid, categoryid); + create asc index fk_rc_relations on relationcategories (relationid); + create asc index fk_rc_categories on relationcategories (categoryid); + + commit; +""" db_1 = db_factory(sql_dialect=3, init=init_script_1) # test_script_1 #--- -# +# # import os # import sys # import time # import subprocess -# +# # os.environ["ISC_USER"] = user_name # os.environ["ISC_PASSWORD"] = user_password # engine = str(db_conn.engine_version) # db_conn.close() -# +# # sql_cmd=''' # create table relations ( # relationid integer, # relationname varchar(35) # ); -# +# # create table categories ( # categoryid integer, # description varchar(20) # ); -# +# # create table relationcategories ( # relationid integer, # categoryid integer # ); # commit; -# +# # insert into relations (relationid, relationname) values (1, 'diving snorkel shop'); # insert into relations (relationid, relationname) values (2, 'bakery garbage'); # insert into relations (relationid, relationname) values (3, 'racing turtle'); # insert into relations (relationid, relationname) values (4, 'folding air-hook shop'); -# +# # insert into categories (categoryid, description) values (1, 'relation'); # insert into categories (categoryid, description) values (2, 'debtor'); # insert into categories (categoryid, description) values (3, 'creditor'); # insert into categories (categoryid, description) values (4, 'newsletter'); -# +# # insert into relationcategories (relationid, categoryid) values (1, 1); # insert into relationcategories (relationid, categoryid) values (2, 1); # insert into relationcategories (relationid, categoryid) values (3, 1); # insert into relationcategories (relationid, categoryid) values (1, 2); # insert into relationcategories (relationid, categoryid) values (2, 2); # insert into relationcategories (relationid, categoryid) values (1, 3); -# +# # commit; -# +# # -- Normally these indexes are created by the primary/foreign keys, # -- but we don't want to rely on them for this test # create unique asc index pk_relations on relations (relationid); @@ -82,10 +127,10 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # create unique asc index pk_relationcategories on relationcategories (relationid, categoryid); # create asc index fk_rc_relations on relationcategories (relationid); # create asc index fk_rc_categories on relationcategories (categoryid); -# +# # commit; -# -# +# +# # set plan on; # set list on; # -- full join should return ... @@ -103,20 +148,20 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # order by # rc.categoryid desc; # ''' -# +# # f_sql=open( os.path.join(context['temp_directory'],'tmp_opt_full_join_03.tmp'), 'w') # f_sql.write(sql_cmd) # f_sql.close() -# +# # f_log = open( os.path.join(context['temp_directory'],'tmp_opt_full_join_03.log'), 'w') -# +# # subprocess.call( [context['isql_path'], dsn, "-i", f_sql.name], # stdout=f_log, # stderr=subprocess.STDOUT # ) # f_log.close() # time.sleep(1) -# +# # plan_25 = 'PLAN SORT (JOIN (C INDEX (PK_CATEGORIES), JOIN (RC NATURAL, R NATURAL)))' # plan_30 = 'PLAN SORT (JOIN (JOIN (C INDEX (PK_CATEGORIES), JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS)))), JOIN (JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS))), C INDEX (PK_CATEGORIES))))' # with open(f_log.name) as f: @@ -126,7 +171,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # plan_expected=plan_25 # else: # plan_expected=plan_30 -# +# # # Remove trailing whitespaces and newline character: # if line.upper().rstrip() == plan_expected: # print( 'Actual plan plan coincides with the expected.' ) @@ -134,18 +179,38 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # print( 'Actual plan: '+line+' - differs from expected: '+plan_expected) # else: # print(line ) -# +# # # Cleanup # ######### # os.remove(f_log.name) # os.remove(f_sql.name) -# -# +# +# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +test_script_1 = """ + set plan on; + set list on; + -- full join should return ... + select + r.relationname, + rc.relationid, + rc.categoryid, + c.description + from + relations r + full join relationcategories rc on (rc.relationid = r.relationid) + full join categories c on (c.categoryid = rc.categoryid) + where + c.categoryid >= 2 + order by + rc.categoryid desc; +""" + +act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ - Actual plan plan coincides with the expected. + PLAN SORT (JOIN (JOIN (C INDEX (PK_CATEGORIES), JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS)))), JOIN (JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS))), C INDEX (PK_CATEGORIES)))) RELATIONNAME diving snorkel shop RELATIONID 1 @@ -163,11 +228,10 @@ expected_stdout_1 = """ RELATIONID CATEGORYID DESCRIPTION newsletter - """ - -@pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - +""" +@pytest.mark.version('>=3.0') +def test_1(act_1: Action): + act_1.expected_stdout = expected_stdout_1 + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_full_join_04.py b/tests/functional/arno/optimizer/test_opt_full_join_04.py index 9056c2a9..8a040945 100644 --- a/tests/functional/arno/optimizer/test_opt_full_join_04.py +++ b/tests/functional/arno/optimizer/test_opt_full_join_04.py @@ -2,7 +2,7 @@ # # id: functional.arno.optimizer.opt_full_join_04 # title: FULL OUTER JOIN, list all values, but filtered in WHERE clause -# decription: +# decription: # TableX FULL OUTER JOIN TableY with relation in the ON clause. # Three tables are used, where 1 table (RC) holds references to the two other tables (R and C). # The two tables R and C contain both 1 value that isn't inside RC. @@ -10,8 +10,8 @@ # NB: 'UNION ALL' is used here, so PLAN for 2.5 will be of TWO separate rows. # ===== # Refactored 01-mar-2016. Checked on: WI-V2.5.6.26970, WI-V3.0.0.32366 -# -# tracker_id: +# +# tracker_id: # min_versions: ['2.5.0'] # versions: 2.5 # qmid: functional.arno.optimizer.opt_full_join_04 @@ -24,60 +24,106 @@ from firebird.qa import db_factory, isql_act, Action substitutions_1 = [] -init_script_1 = """""" +init_script_1 = """ + create table relations ( + relationid integer, + relationname varchar(35) + ); + + create table categories ( + categoryid integer, + description varchar(20) + ); + + create table relationcategories ( + relationid integer, + categoryid integer + ); + + commit; + + insert into relations (relationid, relationname) values (1, 'diving snorkel shop'); + insert into relations (relationid, relationname) values (2, 'bakery garbage'); + insert into relations (relationid, relationname) values (3, 'racing turtle'); + insert into relations (relationid, relationname) values (4, 'folding air-hook shop'); + + insert into categories (categoryid, description) values (1, 'relation'); + insert into categories (categoryid, description) values (2, 'debtor'); + insert into categories (categoryid, description) values (3, 'creditor'); + insert into categories (categoryid, description) values (4, 'newsletter'); + + insert into relationcategories (relationid, categoryid) values (1, 1); + insert into relationcategories (relationid, categoryid) values (2, 1); + insert into relationcategories (relationid, categoryid) values (3, 1); + insert into relationcategories (relationid, categoryid) values (1, 2); + insert into relationcategories (relationid, categoryid) values (2, 2); + insert into relationcategories (relationid, categoryid) values (1, 3); + + commit; + + -- normally these indexes are created by the primary/foreign keys, + -- but we don't want to rely on them for this test + create unique asc index pk_relations on relations (relationid); + create unique asc index pk_categories on categories (categoryid); + create unique asc index pk_relationcategories on relationcategories (relationid, categoryid); + create asc index fk_rc_relations on relationcategories (relationid); + create asc index fk_rc_categories on relationcategories (categoryid); + + commit; +""" db_1 = db_factory(sql_dialect=3, init=init_script_1) # test_script_1 #--- -# +# # import os # import sys # import time # import subprocess -# +# # os.environ["ISC_USER"] = user_name # os.environ["ISC_PASSWORD"] = user_password # engine = str(db_conn.engine_version) # db_conn.close() -# +# # sql_cmd=''' # create table relations ( # relationid integer, # relationname varchar(35) # ); -# +# # create table categories ( # categoryid integer, # description varchar(20) # ); -# +# # create table relationcategories ( # relationid integer, # categoryid integer # ); -# +# # commit; -# +# # insert into relations (relationid, relationname) values (1, 'diving snorkel shop'); # insert into relations (relationid, relationname) values (2, 'bakery garbage'); # insert into relations (relationid, relationname) values (3, 'racing turtle'); # insert into relations (relationid, relationname) values (4, 'folding air-hook shop'); -# +# # insert into categories (categoryid, description) values (1, 'relation'); # insert into categories (categoryid, description) values (2, 'debtor'); # insert into categories (categoryid, description) values (3, 'creditor'); # insert into categories (categoryid, description) values (4, 'newsletter'); -# +# # insert into relationcategories (relationid, categoryid) values (1, 1); # insert into relationcategories (relationid, categoryid) values (2, 1); # insert into relationcategories (relationid, categoryid) values (3, 1); # insert into relationcategories (relationid, categoryid) values (1, 2); # insert into relationcategories (relationid, categoryid) values (2, 2); # insert into relationcategories (relationid, categoryid) values (1, 3); -# +# # commit; -# +# # -- normally these indexes are created by the primary/foreign keys, # -- but we don't want to rely on them for this test # create unique asc index pk_relations on relations (relationid); @@ -85,12 +131,12 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # create unique asc index pk_relationcategories on relationcategories (relationid, categoryid); # create asc index fk_rc_relations on relationcategories (relationid); # create asc index fk_rc_categories on relationcategories (categoryid); -# +# # commit; -# +# # set plan on; # set list on; -# +# # select # r.relationname, # rc.relationid, @@ -102,9 +148,9 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # full join categories c on (c.categoryid = rc.categoryid) # where # rc.categoryid is null and c.categoryid >= 1 -# +# # UNION ALL --- ::::::: U N I O N A L L ::::::: -# +# # select # r.relationname, # rc.relationid, @@ -117,28 +163,28 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # where # rc.relationid is null and r.relationid >= 1; # ''' -# +# # f_sql=open( os.path.join(context['temp_directory'],'tmp_opt_full_join_04.tmp'), 'w') # f_sql.write(sql_cmd) # f_sql.close() -# +# # f_log = open( os.path.join(context['temp_directory'],'tmp_opt_full_join_04.log'), 'w') -# +# # subprocess.call( [context['isql_path'], dsn, "-i", f_sql.name], # stdout=f_log, # stderr=subprocess.STDOUT # ) # f_log.close() # time.sleep(1) -# +# # # NB: plan for 2.5 contains TWO rows! # plan_25_1 = 'PLAN JOIN (C NATURAL, JOIN (RC NATURAL, R INDEX (PK_RELATIONS)))' # plan_25_2 = 'PLAN JOIN (C INDEX (PK_CATEGORIES), JOIN (RC NATURAL, R NATURAL))' -# +# # # plan for 3.0 contains only ONE row: # plan_30_1 = 'PLAN (JOIN (JOIN (C INDEX (PK_CATEGORIES), JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS)))), JOIN (JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS))), C INDEX (PK_CATEGORIES))), JOIN (JOIN (C NATURAL, JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R INDEX (PK_RELATIONS), RC INDEX (FK_RC_RELATIONS)))), JOIN (JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R INDEX (PK_RELATIONS), RC INDEX (FK_RC_RELATIONS))), C NATURAL)))' # plan_30_2 = '' -# +# # with open(f_log.name) as f: # for line in f: # if line.upper().startswith('PLAN '): @@ -148,7 +194,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # else: # plan_expected_1=plan_30_1 # plan_expected_2=plan_30_2 -# +# # # Remove trailing whitespaces and newline character: # if line.upper().rstrip() == plan_expected_1 or line.upper().rstrip() == plan_expected_2: # if line.upper().rstrip() == plan_expected_1: @@ -157,18 +203,50 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # print( 'Actual plan: '+line+' - differs from expected: '+plan_expected) # else: # print(line ) -# +# # # Cleanup # ######### # os.remove(f_log.name) # os.remove(f_sql.name) -# -# +# +# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +test_script_1 = """ + set plan on; + set list on; + + select + r.relationname, + rc.relationid, + rc.categoryid, + c.description + from + relations r + full join relationcategories rc on (rc.relationid = r.relationid) + full join categories c on (c.categoryid = rc.categoryid) + where + rc.categoryid is null and c.categoryid >= 1 + + UNION ALL --- ::::::: U N I O N A L L ::::::: + + select + r.relationname, + rc.relationid, + rc.categoryid, + c.description + from + relations r + full join relationcategories rc on (rc.relationid = r.relationid) + full join categories c on (c.categoryid = rc.categoryid) + where + rc.relationid is null and r.relationid >= 1; +""" + +act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ - Actual plan plan coincides with the expected. + PLAN (JOIN (JOIN (C INDEX (PK_CATEGORIES), JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS)))), JOIN (JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R NATURAL, RC INDEX (FK_RC_RELATIONS))), C INDEX (PK_CATEGORIES))), JOIN (JOIN (C NATURAL, JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R INDEX (PK_RELATIONS), RC INDEX (FK_RC_RELATIONS)))), JOIN (JOIN (JOIN (RC NATURAL, R INDEX (PK_RELATIONS)), JOIN (R INDEX (PK_RELATIONS), RC INDEX (FK_RC_RELATIONS))), C NATURAL))) RELATIONNAME RELATIONID @@ -178,11 +256,10 @@ expected_stdout_1 = """ RELATIONID CATEGORYID DESCRIPTION - """ - -@pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - +""" +@pytest.mark.version('>=3.0') +def test_1(act_1: Action): + act_1.expected_stdout = expected_stdout_1 + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_01.py b/tests/functional/arno/optimizer/test_opt_inner_join_01.py index 922ce259..3429ff8b 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_01.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_01.py @@ -72,8 +72,7 @@ SELECT Count(*) FROM Table_100 t100 - JOIN Table_10 t10 ON (t10.ID = t100.ID); -""" +JOIN Table_10 t10 ON (t10.ID = t100.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -82,12 +81,11 @@ expected_stdout_1 = """PLAN JOIN (T10 NATURAL, T100 INDEX (PK_TABLE_100)) COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_02.py b/tests/functional/arno/optimizer/test_opt_inner_join_02.py index 1da68121..03db38af 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_02.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_02.py @@ -94,8 +94,7 @@ SELECT FROM Table_3K t3K JOIN Table_100 t100 ON (t100.ID = t3K.ID) - JOIN Table_10 t10 ON (t10.ID = t100.ID); -""" +JOIN Table_10 t10 ON (t10.ID = t100.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -104,12 +103,11 @@ expected_stdout_1 = """PLAN JOIN (T10 NATURAL, T100 INDEX (PK_TABLE_100), T3K IN COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_03.py b/tests/functional/arno/optimizer/test_opt_inner_join_03.py index ba0bb031..48ee710c 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_03.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_03.py @@ -2,13 +2,13 @@ # # id: functional.arno.optimizer.opt_inner_join_03 # title: INNER JOIN join order -# decription: -# With a INNER JOIN the relation with the smallest expected result should be the first one in process order. -# The next relation should be the next relation with expected smallest result based on previous relation +# decription: +# With a INNER JOIN the relation with the smallest expected result should be the first one in process order. +# The next relation should be the next relation with expected smallest result based on previous relation # and do on till last relation. # Before 2.0, Firebird did stop checking order possibilties above 7 relations. -# -# tracker_id: +# +# tracker_id: # min_versions: [] # versions: 2.0 # qmid: functional.arno.optimizer.opt_inner_join_03 @@ -113,35 +113,20 @@ FROM JOIN Table_4K t4K ON (t4K.ID = t3K.ID) JOIN Table_1K t1K ON (t1K.ID = t4K.ID) JOIN Table_2K t2K ON (t2K.ID = t1K.ID) - JOIN Table_1 t1 ON (t1.ID = t2K.ID); -""" +JOIN Table_1 t1 ON (t1.ID = t2K.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """PLAN JOIN (T1 NATURAL, T1K INDEX (PK_TABLE_1K), T2K INDEX (PK_TABLE_2K), T3K INDEX (PK_TABLE_3K), T5K INDEX (PK_TABLE_5K), T4K INDEX (PK_TABLE_4K), T6K INDEX (PK_TABLE_6K), T8K INDEX (PK_TABLE_8K), T10K INDEX (PK_TABLE_10K)) +expected_stdout_1 = """PLAN JOIN (T1 NATURAL, T1K INDEX (PK_TABLE_1K), T2K INDEX (PK_TABLE_2K), T3K INDEX (PK_TABLE_3K), T4K INDEX (PK_TABLE_4K), T5K INDEX (PK_TABLE_5K), T6K INDEX (PK_TABLE_6K), T8K INDEX (PK_TABLE_8K), T10K INDEX (PK_TABLE_10K)) - COUNT -===================== - 1 -""" + COUNT +============ -@pytest.mark.version('>=2.0,<4') +1""" + +@pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout - -expected_stdout_2 = """PLAN JOIN (T1 NATURAL, T1K INDEX (PK_TABLE_1K), T2K INDEX (PK_TABLE_2K), T3K INDEX (PK_TABLE_3K), T4K INDEX (PK_TABLE_4K), T5K INDEX (PK_TABLE_5K), T6K INDEX (PK_TABLE_6K), T8K INDEX (PK_TABLE_8K), T10K INDEX (PK_TABLE_10K)) - - COUNT -===================== - 1 -""" - -@pytest.mark.version('>=4') -def test_1(act_1: Action): - act_1.charset = 'NONE' - act_1.expected_stdout = expected_stdout_2 - act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_04.py b/tests/functional/arno/optimizer/test_opt_inner_join_04.py index 56b905bb..fdc1affa 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_04.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_04.py @@ -312,7 +312,7 @@ FROM RELATIONS r JOIN COUNTRIES c ON (c.COUNTRYID = r.COUNTRYID) WHERE - c.COUNTRYID IS NULL;""" +c.COUNTRYID IS NULL;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -321,12 +321,11 @@ expected_stdout_1 = """PLAN JOIN (C INDEX (PK_COUNTRIES), R INDEX (FK_RELATIONS_ COUNT ===================== 0 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_05.py b/tests/functional/arno/optimizer/test_opt_inner_join_05.py index 5f592e3f..b435461f 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_05.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_05.py @@ -314,8 +314,7 @@ FROM WHERE c.CountryName LIKE 'N%' ORDER BY - r.RelationName DESC; -""" +r.RelationName DESC;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -326,12 +325,11 @@ RELATIONNAME COUNTRYNAME University Leiden NETHERLANDS University Delft NETHERLANDS -University Amsterdam NETHERLANDS -""" +University Amsterdam NETHERLANDS""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_06.py b/tests/functional/arno/optimizer/test_opt_inner_join_06.py index 5e342068..3cf99433 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_06.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_06.py @@ -91,8 +91,7 @@ SELECT Count(*) FROM View_100 v100 - JOIN View_10 v10 ON (v10.ID = v100.ID); -""" +JOIN View_10 v10 ON (v10.ID = v100.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -101,12 +100,11 @@ expected_stdout_1 = """PLAN JOIN (V10 TABLE_10 NATURAL, V100 TABLE_100 INDEX (PK COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_07.py b/tests/functional/arno/optimizer/test_opt_inner_join_07.py index 0a55214d..56874446 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_07.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_07.py @@ -129,8 +129,7 @@ SELECT Count(*) FROM View_B vb - JOIN View_A va ON (va.ID1K = vb.ID10K); -""" +JOIN View_A va ON (va.ID1K = vb.ID10K);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -140,12 +139,11 @@ expected_stdout_1 = """PLAN JOIN (VA T1K NATURAL, VB T3K INDEX (PK_TABLE_3K), VA COUNT ============ - 1000 -""" +1000""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_08.py b/tests/functional/arno/optimizer/test_opt_inner_join_08.py index 4a81b758..7cc7d42a 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_08.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_08.py @@ -122,8 +122,7 @@ SELECT Count(*) FROM View_B vb - JOIN View_A va ON (va.ID1 = vb.ID100); -""" +JOIN View_A va ON (va.ID1 = vb.ID100);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -132,12 +131,11 @@ expected_stdout_1 = """PLAN JOIN (JOIN (VA T1 NATURAL, VA T250 INDEX (PK_TABLE_2 COUNT ===================== 1 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_09.py b/tests/functional/arno/optimizer/test_opt_inner_join_09.py index 95346d0f..35722adf 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_09.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_09.py @@ -105,7 +105,6 @@ FROM WHERE t250.ID = t1.ID and t100.ID = t1.ID; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -115,12 +114,11 @@ expected_stdout_1 = """PLAN JOIN (T1 NATURAL, T50 INDEX (PK_TABLE_50), T100 INDE COUNT ============ - 1 -""" +1""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_10.py b/tests/functional/arno/optimizer/test_opt_inner_join_10.py index 616e7bfd..5c59e226 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_10.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_10.py @@ -93,8 +93,7 @@ SELECT FROM Table_50 t50 JOIN Table_100 t100 ON (t100.ID = t50.ID) - JOIN Table_250 t250 ON (t250.ID = t100.ID); -""" +JOIN Table_250 t250 ON (t250.ID = t100.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -103,12 +102,11 @@ expected_stdout_1 = """PLAN JOIN (T50 NATURAL, T100 INDEX (PK_TABLE_100), T250 I COUNT ============ - 50 -""" +50""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_merge_01.py b/tests/functional/arno/optimizer/test_opt_inner_join_merge_01.py index d22c52f0..f75df600 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_merge_01.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_merge_01.py @@ -68,8 +68,7 @@ SELECT Count(*) FROM Table_100 t100 - JOIN Table_10 t10 ON (t10.ID = t100.ID); -""" +JOIN Table_10 t10 ON (t10.ID = t100.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -78,12 +77,11 @@ expected_stdout_1 = """PLAN HASH (T100 NATURAL, T10 NATURAL) COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_merge_02.py b/tests/functional/arno/optimizer/test_opt_inner_join_merge_02.py index 527e0ae0..202b6543 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_merge_02.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_merge_02.py @@ -87,8 +87,7 @@ SELECT FROM Table_1000 t1000 JOIN Table_100 t100 ON (t100.ID = t1000.ID) - JOIN Table_10 t10 ON (t10.ID = t100.ID); -""" +JOIN Table_10 t10 ON (t10.ID = t100.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -97,12 +96,11 @@ expected_stdout_1 = """PLAN HASH (T1000 NATURAL, T100 NATURAL, T10 NATURAL) COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_merge_03.py b/tests/functional/arno/optimizer/test_opt_inner_join_merge_03.py index f140b464..ce829f70 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_merge_03.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_merge_03.py @@ -68,8 +68,7 @@ SELECT Count(*) FROM Table_100 t100 - JOIN Table_10 t10 ON (t10.ID + (2 * 10) = t100.ID + 20); -""" +JOIN Table_10 t10 ON (t10.ID + (2 * 10) = t100.ID + 20);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -78,12 +77,11 @@ expected_stdout_1 = """PLAN HASH (T100 NATURAL, T10 NATURAL) COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_merge_04.py b/tests/functional/arno/optimizer/test_opt_inner_join_merge_04.py index 8776ec8c..2e0a6e4b 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_merge_04.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_merge_04.py @@ -79,8 +79,7 @@ SELECT Count(*) FROM Table_100 t100 - JOIN Table_10 t10 ON (t10.ID = t100.ID); -""" +JOIN Table_10 t10 ON (t10.ID = t100.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -89,12 +88,11 @@ expected_stdout_1 = """PLAN HASH (T100 NATURAL, T10 NATURAL) COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_merge_05.py b/tests/functional/arno/optimizer/test_opt_inner_join_merge_05.py index d117d828..dcbbf655 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_merge_05.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_merge_05.py @@ -98,8 +98,7 @@ SELECT Count(*) FROM Table_1000 t1000 - JOIN View_A va ON (va.ID100 = t1000.ID); -""" +JOIN View_A va ON (va.ID100 = t1000.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -108,12 +107,11 @@ expected_stdout_1 = """PLAN HASH (T1000 NATURAL, VA T100 NATURAL, VA T10 NATURAL COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_inner_join_merge_06.py b/tests/functional/arno/optimizer/test_opt_inner_join_merge_06.py index f3bbbc34..8f3c5f2f 100644 --- a/tests/functional/arno/optimizer/test_opt_inner_join_merge_06.py +++ b/tests/functional/arno/optimizer/test_opt_inner_join_merge_06.py @@ -84,8 +84,7 @@ SELECT FROM Table_100 t100 JOIN Table_10 t10 ON (t10.ID = t100.ID) - JOIN PR_List_1000 sp1000 ON (sp1000.ID = t10.ID); -""" +JOIN PR_List_1000 sp1000 ON (sp1000.ID = t10.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -94,12 +93,11 @@ expected_stdout_1 = """PLAN HASH (T100 NATURAL, T10 NATURAL, SP1000 NATURAL) COUNT ===================== 5 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_01.py b/tests/functional/arno/optimizer/test_opt_left_join_01.py index f0d2afd2..c1713379 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_01.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_01.py @@ -59,8 +59,7 @@ SELECT c.ColorName FROM Flowers f - LEFT JOIN Colors c ON (1 = 0); -""" +LEFT JOIN Colors c ON (1 = 0);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -71,12 +70,11 @@ FLOWERNAME COLORNAME Rose Tulip Gerbera - """ @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_02.py b/tests/functional/arno/optimizer/test_opt_left_join_02.py index 68d34aa2..826e6cce 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_02.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_02.py @@ -62,8 +62,7 @@ FROM Flowers f LEFT JOIN Colors c ON (1 = 0) WHERE - c.ColorID IS NULL; -""" +c.ColorID IS NULL;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -73,12 +72,11 @@ FLOWERNAME COLORNAME Rose Tulip -Gerbera -""" +Gerbera """ @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_03.py b/tests/functional/arno/optimizer/test_opt_left_join_03.py index 9659958f..3277c58a 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_03.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_03.py @@ -62,7 +62,7 @@ FROM Flowers f LEFT JOIN Colors c ON (1 = 1) WHERE - f.ColorID = c.ColorID;""" +f.ColorID = c.ColorID;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -72,12 +72,11 @@ FLOWERNAME COLORNAME Rose Red Tulip Yellow -Gerbera Not defined -""" +Gerbera Not defined""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_04.py b/tests/functional/arno/optimizer/test_opt_left_join_04.py index 0515bb86..e0bfe74c 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_04.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_04.py @@ -61,8 +61,7 @@ SELECT c.ColorName FROM Flowers f - LEFT JOIN Colors c ON (c.ColorID = f.ColorID); -""" +LEFT JOIN Colors c ON (c.ColorID = f.ColorID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -72,12 +71,11 @@ FLOWERNAME COLORNAME Rose Red Tulip Yellow -Gerbera Not defined -""" +Gerbera Not defined""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_05.py b/tests/functional/arno/optimizer/test_opt_left_join_05.py index 7a136118..df0b6ba4 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_05.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_05.py @@ -62,8 +62,7 @@ SELECT FROM Flowers f LEFT JOIN Colors c ON ((c.ColorID = f.ColorID) AND - (c.ColorID >= 1)); -""" +(c.ColorID >= 1));""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -79,5 +78,5 @@ Gerbera """ def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_06.py b/tests/functional/arno/optimizer/test_opt_left_join_06.py index 820aacbc..3a840e82 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_06.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_06.py @@ -66,8 +66,7 @@ FROM LEFT JOIN Colors c ON (c.ColorID = f1.ColorID) AND (c.ColorID > 0) WHERE (f2.ColorID = f1.ColorID) AND - (c.ColorID > 0); -""" +(c.ColorID > 0);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -77,12 +76,11 @@ FLOWERNAME FLOWERNAME COLORNAME ============================== ============================== ==================== Rose Rose Red -Tulip Tulip Yellow -""" +Tulip Tulip Yellow""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_07.py b/tests/functional/arno/optimizer/test_opt_left_join_07.py index 9fb69ccd..2fa006bb 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_07.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_07.py @@ -63,8 +63,7 @@ FROM Flowers f JOIN Colors c1 ON (c1.ColorID = f.ColorID) LEFT JOIN Colors c2 ON (c2.ColorID = c1.ColorID) - JOIN Colors c3 ON (c3.ColorID = c1.ColorID); -""" +JOIN Colors c3 ON (c3.ColorID = c1.ColorID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -75,12 +74,11 @@ expected_stdout_1 = """PLAN JOIN (JOIN (JOIN (F NATURAL, C1 INDEX (PK_COLORS)), 1 1 1 1 2 2 2 2 - 0 0 0 0 -""" +0 0 0 0""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_08.py b/tests/functional/arno/optimizer/test_opt_left_join_08.py index 06b0fcf3..127576e8 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_08.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_08.py @@ -62,8 +62,7 @@ FROM LEFT JOIN Colors c ON (c.ColorID = f.ColorID) AND (c.ColorID > 0) WHERE - f.ColorID >= 0; -""" +f.ColorID >= 0;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -75,12 +74,11 @@ PLAN JOIN (F INDEX (FK_FLOWERS_COLORS), C INDEX (PK_COLORS)) 1 1 2 2 0 - """ @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_09.py b/tests/functional/arno/optimizer/test_opt_left_join_09.py index 27b74a96..098003a7 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_09.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_09.py @@ -61,7 +61,7 @@ FROM Flowers f LEFT JOIN Colors c1 ON (c1.ColorID = f.ColorID) AND (c1.ColorID >= 1) - JOIN Colors c2 ON (c2.ColorID = f.ColorID);""" +JOIN Colors c2 ON (c2.ColorID = f.ColorID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -72,12 +72,11 @@ expected_stdout_1 = """PLAN JOIN (JOIN (F NATURAL, C1 INDEX (PK_COLORS)), C2 IND 1 1 1 2 2 2 - 0 0 -""" +0 0""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_10.py b/tests/functional/arno/optimizer/test_opt_left_join_10.py index 551edd85..726eb651 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_10.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_10.py @@ -62,8 +62,7 @@ FROM Flowers f LEFT JOIN Colors c ON (1 = 0) WHERE - c.ColorID IS NULL or c.ColorID = 1; -""" +c.ColorID IS NULL or c.ColorID = 1;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -73,12 +72,11 @@ FLOWERNAME COLORNAME Rose Tulip -Gerbera -""" +Gerbera """ @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_11.py b/tests/functional/arno/optimizer/test_opt_left_join_11.py index be294cf5..6f1a390e 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_11.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_11.py @@ -72,17 +72,17 @@ test_script_1 = """ WHERE c.ColorName STARTING WITH 'R' -- index I_Colors_Name exists for this field ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ PLAN JOIN (F NATURAL, C INDEX (I_COLORS_NAME)) - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_12.py b/tests/functional/arno/optimizer/test_opt_left_join_12.py index eae7a177..2b4bbe19 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_12.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_12.py @@ -64,7 +64,7 @@ FROM Flowers f LEFT JOIN Colors c ON (c.ColorID = f.ColorID) WHERE - CASE WHEN c.ColorID >= 0 THEN 0 ELSE 1 END = 1;""" +CASE WHEN c.ColorID >= 0 THEN 0 ELSE 1 END = 1;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -73,12 +73,11 @@ expected_stdout_1 = """PLAN JOIN (F NATURAL, C INDEX (PK_COLORS)) FLOWERNAME COLORNAME ============================== ==================== -Blanc -""" +Blanc """ @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_left_join_13.py b/tests/functional/arno/optimizer/test_opt_left_join_13.py index fce95bed..6ad63a1a 100644 --- a/tests/functional/arno/optimizer/test_opt_left_join_13.py +++ b/tests/functional/arno/optimizer/test_opt_left_join_13.py @@ -71,8 +71,7 @@ SELECT vc.ColorName FROM Flowers f - LEFT JOIN VW_Colors vc ON (vc.ColorID = f.ColorID); -""" +LEFT JOIN VW_Colors vc ON (vc.ColorID = f.ColorID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -82,12 +81,11 @@ FLOWERNAME COLORNAME Rose Red Tulip Yellow -Gerbera Not defined -""" +Gerbera Not defined""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_mixed_joins_01.py b/tests/functional/arno/optimizer/test_opt_mixed_joins_01.py index 47a73f3e..815dc876 100644 --- a/tests/functional/arno/optimizer/test_opt_mixed_joins_01.py +++ b/tests/functional/arno/optimizer/test_opt_mixed_joins_01.py @@ -90,8 +90,7 @@ SELECT FROM Table_1000 t1000 JOIN Table_100 t100 ON (t100.ID = t1000.ID) - JOIN Table_10 t10 ON (t10.ID = t100.ID); -""" +JOIN Table_10 t10 ON (t10.ID = t100.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -100,12 +99,11 @@ expected_stdout_1 = """PLAN HASH (T1000 NATURAL, JOIN (T10 NATURAL, T100 INDEX ( COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_mixed_joins_02.py b/tests/functional/arno/optimizer/test_opt_mixed_joins_02.py index 916fcf83..0fb4efa6 100644 --- a/tests/functional/arno/optimizer/test_opt_mixed_joins_02.py +++ b/tests/functional/arno/optimizer/test_opt_mixed_joins_02.py @@ -90,8 +90,7 @@ SELECT FROM Table_1000 t1000 LEFT JOIN Table_100 t100 ON (t100.ID = t1000.ID) - JOIN Table_10 t10 ON (t10.ID = t100.ID); -""" +JOIN Table_10 t10 ON (t10.ID = t100.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -100,12 +99,11 @@ expected_stdout_1 = """PLAN HASH (T10 NATURAL, JOIN (T1000 NATURAL, T100 INDEX ( COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_mixed_joins_03.py b/tests/functional/arno/optimizer/test_opt_mixed_joins_03.py index 5f339861..1b30810f 100644 --- a/tests/functional/arno/optimizer/test_opt_mixed_joins_03.py +++ b/tests/functional/arno/optimizer/test_opt_mixed_joins_03.py @@ -97,8 +97,7 @@ FROM Table_10 t10 LEFT JOIN Table_1 t1 ON (t1.ID = t10.ID) JOIN Table_1000 t1000 ON (t1000.ID = t10.ID) - JOIN Table_100 t100 ON (t100.ID = t1000.ID); -""" +JOIN Table_100 t100 ON (t100.ID = t1000.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -107,12 +106,11 @@ expected_stdout_1 = """PLAN HASH (T1000 NATURAL, JOIN (JOIN (T10 NATURAL, T1 IND COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_mixed_joins_04.py b/tests/functional/arno/optimizer/test_opt_mixed_joins_04.py index 495f4b68..01685a59 100644 --- a/tests/functional/arno/optimizer/test_opt_mixed_joins_04.py +++ b/tests/functional/arno/optimizer/test_opt_mixed_joins_04.py @@ -103,8 +103,7 @@ FROM LEFT JOIN Table_1 t1 ON (t1.ID = t10.ID) JOIN Table_100 t100 ON (t100.ID = t10.ID) LEFT JOIN Table_50 t50 ON (t50.ID = t100.ID) - JOIN Table_1000 t1000 ON (t1000.ID = t100.ID); -""" +JOIN Table_1000 t1000 ON (t1000.ID = t100.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -113,12 +112,11 @@ expected_stdout_1 = """PLAN HASH (T1000 NATURAL, JOIN (HASH (T100 NATURAL, JOIN COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_mixed_joins_05.py b/tests/functional/arno/optimizer/test_opt_mixed_joins_05.py index 008188dd..a4a7c944 100644 --- a/tests/functional/arno/optimizer/test_opt_mixed_joins_05.py +++ b/tests/functional/arno/optimizer/test_opt_mixed_joins_05.py @@ -110,8 +110,7 @@ FROM JOIN Table_1000 t1000 ON (t1000.ID = t500.ID) LEFT JOIN Table_10 t10 ON (t10.ID = t1000.ID) JOIN Table_50 t50 ON (t50.ID = t10.ID) - JOIN Table_100 t100 ON (t100.ID = t500.ID); -""" +JOIN Table_100 t100 ON (t100.ID = t500.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -120,12 +119,11 @@ expected_stdout_1 = """PLAN HASH (T100 NATURAL, JOIN (JOIN (HASH (T1000 NATURAL, COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_mixed_joins_06.py b/tests/functional/arno/optimizer/test_opt_mixed_joins_06.py index bd16fe3d..017cd3c4 100644 --- a/tests/functional/arno/optimizer/test_opt_mixed_joins_06.py +++ b/tests/functional/arno/optimizer/test_opt_mixed_joins_06.py @@ -109,8 +109,7 @@ FROM JOIN Table_1000 t1000 ON (t1000.ID = t500.ID) JOIN Table_10 t10 ON (t10.ID = t1000.ID) JOIN Table_50 t50 ON (t50.ID = t10.ID) - JOIN Table_100 t100 ON (t100.ID = t500.ID); -""" +JOIN Table_100 t100 ON (t100.ID = t500.ID);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -119,12 +118,11 @@ expected_stdout_1 = """PLAN HASH (T1000 NATURAL, T100 NATURAL, T10 NATURAL, JOIN COUNT ===================== 10 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_multi_index_selection_01.py b/tests/functional/arno/optimizer/test_opt_multi_index_selection_01.py index d79958d8..72b891c0 100644 --- a/tests/functional/arno/optimizer/test_opt_multi_index_selection_01.py +++ b/tests/functional/arno/optimizer/test_opt_multi_index_selection_01.py @@ -74,8 +74,7 @@ FROM WHERE st.F1 = 5 and st.F2 = 50 and - st.F3 = 550; -""" +st.F3 = 550;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -84,12 +83,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_F2_UNIQUE_ASC)) F1 F2 F3 ============ ============ ============ - 5 50 550 -""" +5 50 550""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_multi_index_selection_02.py b/tests/functional/arno/optimizer/test_opt_multi_index_selection_02.py index 81ab6802..e2fddb3b 100644 --- a/tests/functional/arno/optimizer/test_opt_multi_index_selection_02.py +++ b/tests/functional/arno/optimizer/test_opt_multi_index_selection_02.py @@ -94,12 +94,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_F2_ASC)) F1 F2 F3 ============ ============ ============ - 150 0 150 -""" +150 0 150""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_multi_index_selection_03.py b/tests/functional/arno/optimizer/test_opt_multi_index_selection_03.py index 5570ab13..37dd7e79 100644 --- a/tests/functional/arno/optimizer/test_opt_multi_index_selection_03.py +++ b/tests/functional/arno/optimizer/test_opt_multi_index_selection_03.py @@ -91,12 +91,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_ASC)) F1 F2 F3 ============ ============ ============ - 555 550 5 -""" +555 550 5""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_multi_index_selection_04.py b/tests/functional/arno/optimizer/test_opt_multi_index_selection_04.py index 163bd606..08d8a077 100644 --- a/tests/functional/arno/optimizer/test_opt_multi_index_selection_04.py +++ b/tests/functional/arno/optimizer/test_opt_multi_index_selection_04.py @@ -73,8 +73,7 @@ FROM WHERE st.F1 >= 1 and st.F2 = 100 and - st.F3 = 100; -""" +st.F3 = 100;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -83,12 +82,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F3_F2_ASC)) F1 F2 F3 ============ ============ ============ - 100 100 100 -""" +100 100 100""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_multi_index_selection_05.py b/tests/functional/arno/optimizer/test_opt_multi_index_selection_05.py index 2cb8790c..c92af0e6 100644 --- a/tests/functional/arno/optimizer/test_opt_multi_index_selection_05.py +++ b/tests/functional/arno/optimizer/test_opt_multi_index_selection_05.py @@ -79,8 +79,7 @@ FROM WHERE st.F1 >= 1 and st.F2 = 100 and - st.F3 = 100; -""" +st.F3 = 100;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -89,12 +88,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F3_F2_F1_ASC)) F1 F2 F3 ============ ============ ============ - 100 100 100 -""" +100 100 100""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_multi_index_selection_07.py b/tests/functional/arno/optimizer/test_opt_multi_index_selection_07.py index 37c341bb..f18a2c5d 100644 --- a/tests/functional/arno/optimizer/test_opt_multi_index_selection_07.py +++ b/tests/functional/arno/optimizer/test_opt_multi_index_selection_07.py @@ -76,8 +76,7 @@ FROM SelectionTest st WHERE st.F1 = 55 and - st.F2 IS NULL; -""" +st.F2 IS NULL;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -90,12 +89,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_F2_ASC)) 55 55 55 - 55 -""" +55 """ @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_multi_index_selection_08.py b/tests/functional/arno/optimizer/test_opt_multi_index_selection_08.py index e545d94c..de6ad808 100644 --- a/tests/functional/arno/optimizer/test_opt_multi_index_selection_08.py +++ b/tests/functional/arno/optimizer/test_opt_multi_index_selection_08.py @@ -69,8 +69,7 @@ FROM SelectionTest st WHERE st.F1 = 100 and - st.F2 STARTING WITH '55'; -""" +st.F2 STARTING WITH '55';""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -79,12 +78,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_F2_ASC)) F1 F2 ============ ================== - 100 55 -""" +100 55""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_selectivity_01.py b/tests/functional/arno/optimizer/test_opt_selectivity_01.py index c457739a..cfac497b 100644 --- a/tests/functional/arno/optimizer/test_opt_selectivity_01.py +++ b/tests/functional/arno/optimizer/test_opt_selectivity_01.py @@ -85,8 +85,7 @@ FROM WHERE RDB$RELATION_NAME = 'SELECTIVITYTEST' ORDER BY - RDB$INDEX_NAME; -""" +RDB$INDEX_NAME;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -100,12 +99,11 @@ I_F02_DESC 0.00200 I_F05_ASC 0.00498 I_F05_DESC 0.00498 I_F50_ASC 0.04762 -I_F50_DESC 0.04762 -""" +I_F50_DESC 0.04762""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_selectivity_02.py b/tests/functional/arno/optimizer/test_opt_selectivity_02.py index 530f20e6..8e1d4b7d 100644 --- a/tests/functional/arno/optimizer/test_opt_selectivity_02.py +++ b/tests/functional/arno/optimizer/test_opt_selectivity_02.py @@ -76,8 +76,7 @@ FROM WHERE RDB$RELATION_NAME = 'SELECTIVITYTEST' ORDER BY - RDB$INDEX_NAME; -""" +RDB$INDEX_NAME;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -91,12 +90,11 @@ I_F02_DESC 0.00200 I_F05_ASC 0.00498 I_F05_DESC 0.00498 I_F50_ASC 0.04762 -I_F50_DESC 0.04762 -""" +I_F50_DESC 0.04762""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_selectivity_03.py b/tests/functional/arno/optimizer/test_opt_selectivity_03.py index 94c49d61..047e91c9 100644 --- a/tests/functional/arno/optimizer/test_opt_selectivity_03.py +++ b/tests/functional/arno/optimizer/test_opt_selectivity_03.py @@ -99,8 +99,7 @@ FROM WHERE RDB$RELATION_NAME = 'SELECTIVITYTEST' ORDER BY - RDB$INDEX_NAME; -""" +RDB$INDEX_NAME;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -114,12 +113,11 @@ I_F02_DESC 0.00200 I_F05_ASC 0.00498 I_F05_DESC 0.00498 I_F50_ASC 0.04762 -I_F50_DESC 0.04762 -""" +I_F50_DESC 0.04762""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_single_index_selection_01.py b/tests/functional/arno/optimizer/test_opt_single_index_selection_01.py index dff27076..53427846 100644 --- a/tests/functional/arno/optimizer/test_opt_single_index_selection_01.py +++ b/tests/functional/arno/optimizer/test_opt_single_index_selection_01.py @@ -71,8 +71,7 @@ FROM WHERE st.F1 = 500 and st.F2 = 500 and - st.F3 = 500; -""" +st.F3 = 500;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -81,12 +80,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_UNIQUE_ASC)) F1 F2 F3 ============ ============ ============ - 500 500 500 -""" +500 500 500""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_single_index_selection_02.py b/tests/functional/arno/optimizer/test_opt_single_index_selection_02.py index 1e8070f4..998f0257 100644 --- a/tests/functional/arno/optimizer/test_opt_single_index_selection_02.py +++ b/tests/functional/arno/optimizer/test_opt_single_index_selection_02.py @@ -66,8 +66,7 @@ FROM WHERE st.F1 > 1 and st.F1 = 500 and - st.F1 < 1000; -""" +st.F1 < 1000;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -76,12 +75,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_UNIQUE_ASC)) F1 ============ - 500 -""" +500""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_single_index_selection_03.py b/tests/functional/arno/optimizer/test_opt_single_index_selection_03.py index 68e6f0c8..7d1cba0f 100644 --- a/tests/functional/arno/optimizer/test_opt_single_index_selection_03.py +++ b/tests/functional/arno/optimizer/test_opt_single_index_selection_03.py @@ -69,8 +69,7 @@ FROM SelectionTest st WHERE st.F2 = 100 and - st.F1 >= 1; -""" +st.F1 >= 1;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -80,12 +79,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F2_ASC)) ============ ============ 100 100 101 100 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_single_index_selection_05.py b/tests/functional/arno/optimizer/test_opt_single_index_selection_05.py index 266052cd..dbcd37f6 100644 --- a/tests/functional/arno/optimizer/test_opt_single_index_selection_05.py +++ b/tests/functional/arno/optimizer/test_opt_single_index_selection_05.py @@ -83,7 +83,6 @@ WHERE st.F1 = 200 and st.F2 = 200 and st.F3 = 200; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -93,12 +92,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_ASC)) F1 F2 F3 ============ ============ ============ - 200 200 200 -""" +200 200 200""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_single_index_selection_06.py b/tests/functional/arno/optimizer/test_opt_single_index_selection_06.py index 6b4b5427..776e46b6 100644 --- a/tests/functional/arno/optimizer/test_opt_single_index_selection_06.py +++ b/tests/functional/arno/optimizer/test_opt_single_index_selection_06.py @@ -70,8 +70,7 @@ FROM WHERE st.F1 >= 1 and st.F2 = 100 and - st.F3 = 100; -""" +st.F3 = 100;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -80,12 +79,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F3_ASC)) F1 F2 F3 ============ ============ ============ - 100 100 100 -""" +100 100 100""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_single_index_selection_07.py b/tests/functional/arno/optimizer/test_opt_single_index_selection_07.py index d4130c23..3715af43 100644 --- a/tests/functional/arno/optimizer/test_opt_single_index_selection_07.py +++ b/tests/functional/arno/optimizer/test_opt_single_index_selection_07.py @@ -75,8 +75,7 @@ FROM SelectionTest st WHERE st.F1 = 55 and - st.F2 IS NULL; -""" +st.F2 IS NULL;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -85,12 +84,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_UNIQUE_ASC)) F1 F2 ============ ============ - 55 -""" +55 """ @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_single_index_selection_08.py b/tests/functional/arno/optimizer/test_opt_single_index_selection_08.py index 70e59aea..25477762 100644 --- a/tests/functional/arno/optimizer/test_opt_single_index_selection_08.py +++ b/tests/functional/arno/optimizer/test_opt_single_index_selection_08.py @@ -66,8 +66,7 @@ FROM SelectionTest st WHERE st.F1 <= 49 and - st.F2 STARTING WITH '5'; -""" +st.F2 STARTING WITH '5';""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -76,12 +75,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F2_ASC, I_F1_ASC)) F1 F2 ============ ================== - 5 5 -""" +5 5""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_single_index_selection_09.py b/tests/functional/arno/optimizer/test_opt_single_index_selection_09.py index 28696b2b..b8727a03 100644 --- a/tests/functional/arno/optimizer/test_opt_single_index_selection_09.py +++ b/tests/functional/arno/optimizer/test_opt_single_index_selection_09.py @@ -64,8 +64,7 @@ FROM SelectionTest st WHERE st.F1 = 1 or - st.F1 = 5000; -""" +st.F1 = 5000;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -74,12 +73,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_UNIQUE_ASC, I_F1_UNIQUE_ASC)) F1 ============ - 1 -""" +1""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_single_index_selection_10.py b/tests/functional/arno/optimizer/test_opt_single_index_selection_10.py index cf36bf62..6e029b46 100644 --- a/tests/functional/arno/optimizer/test_opt_single_index_selection_10.py +++ b/tests/functional/arno/optimizer/test_opt_single_index_selection_10.py @@ -64,8 +64,7 @@ FROM SelectionTest st WHERE st.F1 = 5000 or - (st.F1 >= 1 and st.F1 <= 1000 and st.F1 = 500); -""" +(st.F1 >= 1 and st.F1 <= 1000 and st.F1 = 500);""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -74,12 +73,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_UNIQUE_ASC, I_F1_UNIQUE_ASC)) F1 ============ - 500 -""" +500""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_single_index_selection_11.py b/tests/functional/arno/optimizer/test_opt_single_index_selection_11.py index 499e28aa..c2251b63 100644 --- a/tests/functional/arno/optimizer/test_opt_single_index_selection_11.py +++ b/tests/functional/arno/optimizer/test_opt_single_index_selection_11.py @@ -75,8 +75,7 @@ FROM SelectionTest st WHERE st.F2 IS NULL and - st.F1 = 55; -""" +st.F1 = 55;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -85,12 +84,11 @@ expected_stdout_1 = """PLAN (ST INDEX (I_F1_UNIQUE_ASC)) F1 F2 ============ ============ - 55 -""" +55 """ @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_01.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_01.py index 61c05105..64d2a71f 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_01.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_01.py @@ -55,7 +55,7 @@ SELECT FROM Table_100 t100 ORDER BY - t100.ID ASC;""" +t100.ID ASC;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -175,12 +175,11 @@ expected_stdout_1 = """PLAN (T100 ORDER PK_TABLE_100) 97 98 99 - 100 -""" +100""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_02.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_02.py index ec8bffe4..e31f7f1e 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_02.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_02.py @@ -55,7 +55,7 @@ SELECT FROM Table_100 t100 ORDER BY - t100.ID DESC;""" +t100.ID DESC;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -175,12 +175,11 @@ expected_stdout_1 = """PLAN (T100 ORDER PK_TABLE_100_DESC) 4 3 2 - 1 -""" +1""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_03.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_03.py index 07bc886e..83acbe21 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_03.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_03.py @@ -65,7 +65,7 @@ SELECT FROM Table_66 t66 ORDER BY - t66.ID ASC;""" +t66.ID ASC;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -147,11 +147,11 @@ expected_stdout_1 = """PLAN (T66 ORDER I_TABLE_66_ASC) 268435455 536870911 1073741823 - 2147483647""" +2147483647""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_04.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_04.py index 23bec88b..79d33987 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_04.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_04.py @@ -65,7 +65,7 @@ SELECT FROM Table_66 t66 ORDER BY - t66.ID DESC;""" +t66.ID DESC;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -148,12 +148,11 @@ expected_stdout_1 = """PLAN (T66 ORDER I_TABLE_66_DESC) -1073741824 -2147483648 - -""" +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_05.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_05.py index 2dae1897..d2d8b4d5 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_05.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_05.py @@ -63,7 +63,7 @@ test_script_1 = """SET PLAN ON; SELECT MAX(t66.ID) AS MAX_ID FROM - Table_66 t66;""" +Table_66 t66;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -72,12 +72,11 @@ expected_stdout_1 = """PLAN (T66 ORDER I_TABLE_66_DESC) MAX_ID ============ - 2147483647 -""" +2147483647""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_06.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_06.py index a6fa58b1..abc75c4a 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_06.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_06.py @@ -62,7 +62,7 @@ test_script_1 = """SET PLAN ON; SELECT MAX(t66.ID) AS MAX_ID FROM - Table_66 t66;""" +Table_66 t66;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -71,12 +71,11 @@ expected_stdout_1 = """PLAN (T66 NATURAL) MAX_ID ============ - 2147483647 -""" +2147483647""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_07.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_07.py index 6620b568..19163315 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_07.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_07.py @@ -63,7 +63,7 @@ test_script_1 = """SET PLAN ON; SELECT MIN(t66.ID) AS MIN_ID FROM - Table_66 t66;""" +Table_66 t66;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -72,12 +72,11 @@ expected_stdout_1 = """PLAN (T66 ORDER I_TABLE_66_ASC) MIN_ID ============ - -2147483648 -""" +-2147483648""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_08.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_08.py index a25dbeb1..25ef7475 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_08.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_08.py @@ -62,7 +62,7 @@ test_script_1 = """SET PLAN ON; SELECT MIN(t66.ID) AS MIN_ID FROM - Table_66 t66;""" +Table_66 t66;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -71,12 +71,11 @@ expected_stdout_1 = """PLAN (T66 NATURAL) MIN_ID ============ - -2147483648 -""" +-2147483648""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_09.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_09.py index ab126444..6830034d 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_09.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_09.py @@ -77,7 +77,7 @@ test_script_1 = """ where t66.id between -20 and 20 order by t66.id desc; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -107,11 +107,11 @@ expected_stdout_1 = """ -4 -8 -16 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_10.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_10.py index 163fd3af..c6f028d5 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_10.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_10.py @@ -54,7 +54,7 @@ test_script_1 = """ from test_idx t where t.id1 = 40 ----------------- --- must navigate through the leaf level of idx_id1_id2_asc, *without* bitmap! order by t.id1 asc, t.id2 asc; ---/ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -72,11 +72,11 @@ expected_stdout_1 = """ 40 7 40 8 40 9 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_11.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_11.py index 42e0f919..6e95d85f 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_11.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_11.py @@ -143,7 +143,7 @@ test_script_1 = """ order by t.id2 desc, t.id1 desc ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -199,11 +199,11 @@ expected_stdout_1 = """ -> Index "TEST_ID2_ID1_DES" Range Scan (upper bound: 1/2) -> Bitmap -> Index "TEST_ID1_ASC" Range Scan (lower bound: 1/1) - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_12.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_12.py index 350ee1c4..9437fd3e 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_12.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_12.py @@ -74,7 +74,7 @@ WHERE t53.ID1 BETWEEN 10 and 20 and t53.ID2 <= 5 ORDER BY - t53.ID1 ASC, t53.ID2 DESC;""" +t53.ID1 ASC, t53.ID2 DESC;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -94,12 +94,11 @@ expected_stdout_1 = """PLAN SORT (T53 INDEX (I_TABLE_53_ID2_ASC, I_TABLE_53_ID1_ 20 2 20 1 20 0 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_13.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_13.py index 5e5cd57e..62fde8cf 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_13.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_13.py @@ -54,7 +54,7 @@ test_script_1 = """ from test_idx t where t.id1 = 10 ---- --- must navigate through the leaf level of idx_id1_id2_asc, *without* bitmap! order by t.id2 asc; ----/ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -72,11 +72,11 @@ expected_stdout_1 = """ 10 7 10 8 10 9 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_14.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_14.py index 118d3080..ac0065aa 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_14.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_14.py @@ -65,7 +65,7 @@ SELECT FROM Table_66 t66 ORDER BY - t66.ID ASC NULLS FIRST;""" +t66.ID ASC NULLS FIRST;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -148,12 +148,11 @@ expected_stdout_1 = """PLAN (T66 ORDER I_TABLE_66_ASC) 268435455 536870911 1073741823 - 2147483647 -""" +2147483647""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_15.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_15.py index 195f82a3..8568bea2 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_15.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_15.py @@ -65,7 +65,7 @@ SELECT FROM Table_66 t66 ORDER BY - t66.ID ASC NULLS LAST;""" +t66.ID ASC NULLS LAST;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -148,12 +148,11 @@ expected_stdout_1 = """PLAN SORT (T66 NATURAL) 2147483647 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_16.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_16.py index 50eb50c7..20eb3ce8 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_16.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_16.py @@ -65,7 +65,7 @@ SELECT FROM Table_66 t66 ORDER BY - t66.ID DESC NULLS FIRST;""" +t66.ID DESC NULLS FIRST;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -148,12 +148,11 @@ expected_stdout_1 = """PLAN SORT (T66 NATURAL) -536870912 -1073741824 -2147483648 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_17.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_17.py index 5676fa51..17e74edc 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_17.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_17.py @@ -65,7 +65,7 @@ SELECT FROM Table_66 t66 ORDER BY - t66.ID DESC NULLS LAST;""" +t66.ID DESC NULLS LAST;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -148,12 +148,11 @@ expected_stdout_1 = """PLAN (T66 ORDER I_TABLE_66_DESC) -1073741824 -2147483648 - -""" +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_18.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_18.py index 09861131..85e0084d 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_18.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_18.py @@ -70,7 +70,7 @@ FROM WHERE t53.ID1 = 30 ORDER BY - t53.ID2 ASC;""" +t53.ID2 ASC;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -88,12 +88,11 @@ expected_stdout_1 = """PLAN (T53 ORDER I_TABLE_53_ID2_ASC INDEX (I_TABLE_53_ID1_ 6 30 7 30 8 30 - 9 30 -""" +9 30""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/arno/optimizer/test_opt_sort_by_index_19.py b/tests/functional/arno/optimizer/test_opt_sort_by_index_19.py index 2629f3b1..6b004a67 100644 --- a/tests/functional/arno/optimizer/test_opt_sort_by_index_19.py +++ b/tests/functional/arno/optimizer/test_opt_sort_by_index_19.py @@ -83,17 +83,17 @@ test_script_1 = """ -- -> Filter -- -> Table "TABLE_53" as "T53" Access By ID -- -> Index "I_TABLE_53_ID1_ID2_ASC" Range Scan (partial match: 1/2) - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ PLAN (T53 ORDER I_TABLE_53_ID1_ID2_ASC) - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_01.py b/tests/functional/basic/db/test_01.py index d7f094a0..906fe4e7 100644 --- a/tests/functional/basic/db/test_01.py +++ b/tests/functional/basic/db/test_01.py @@ -24,7 +24,7 @@ test_script_1 = """ set list on; set blob all; select * from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -34,13 +34,13 @@ expected_stdout_1 = """ RDB$SECURITY_CLASS SQL$362 RDB$CHARACTER_SET_NAME NONE RDB$LINGER - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -55,7 +55,7 @@ test_script_2 = """ set list on; set blob all; select * from rdb$database; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -66,11 +66,11 @@ expected_stdout_2 = """ RDB$CHARACTER_SET_NAME NONE RDB$LINGER RDB$SQL_SECURITY - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/basic/db/test_02.py b/tests/functional/basic/db/test_02.py index 5706f7ac..9d7006be 100644 --- a/tests/functional/basic/db/test_02.py +++ b/tests/functional/basic/db/test_02.py @@ -25,7 +25,7 @@ test_script_1 = """ set blob all; set count on; select * from rdb$character_sets order by rdb$character_set_id; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -656,11 +656,11 @@ expected_stdout_1 = """ Records affected: 52 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_03.py b/tests/functional/basic/db/test_03.py index 39f0b343..9848f928 100644 --- a/tests/functional/basic/db/test_03.py +++ b/tests/functional/basic/db/test_03.py @@ -26,7 +26,7 @@ test_script_1 = """ set count on; -- NB: rdb$collation_name is UNIQUE. select * from rdb$collations order by rdb$collation_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -1833,11 +1833,11 @@ expected_stdout_1 = """ Records affected: 149 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_04.py b/tests/functional/basic/db/test_04.py index 0a4df7a1..1afe6b8a 100644 --- a/tests/functional/basic/db/test_04.py +++ b/tests/functional/basic/db/test_04.py @@ -25,17 +25,17 @@ test_script_1 = """ set count on; -- NB: rdb$exception_name is UNIQUE column. select * from rdb$exceptions order by rdb$exception_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_05.py b/tests/functional/basic/db/test_05.py index 59e8c765..23550cc0 100644 --- a/tests/functional/basic/db/test_05.py +++ b/tests/functional/basic/db/test_05.py @@ -32,17 +32,17 @@ test_script_1 = """ ,rdb$depended_on_type ,rdb$package_name -- avail. only for FB 3.0+ ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_06.py b/tests/functional/basic/db/test_06.py index b590d3fa..d1ea3fe9 100644 --- a/tests/functional/basic/db/test_06.py +++ b/tests/functional/basic/db/test_06.py @@ -24,17 +24,17 @@ test_script_1 = """ set list on; set count on; select * from rdb$field_dimensions order by rdb$field_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_07.py b/tests/functional/basic/db/test_07.py index d72565d1..d757f657 100644 --- a/tests/functional/basic/db/test_07.py +++ b/tests/functional/basic/db/test_07.py @@ -5,13 +5,14 @@ # decription: # Check for correct content of RDB$FIELDS in empty database. # Checked on: -# 2.5.9.27126: OK, 0.625s. -# 3.0.5.33086: OK, 1.766s. -# 4.0.0.1378: OK, 6.063s. +# 2.5.9.27126 +# 3.0.5.33086 +# 4.0.0.2491 +# 5.0.0.43 // 21.05.2021: created separate section for this major FB version. # # tracker_id: # min_versions: ['2.5.5'] -# versions: 3.0, 4.0 +# versions: 3.0, 4.0, 5.0 # qmid: functional.basic.db.db_07 import pytest @@ -31,7 +32,7 @@ test_script_1 = """ set blob all; set count on; select * from rdb$fields order by rdb$field_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -4699,13 +4700,13 @@ RDB$SECURITY_CLASS SQL$133 RDB$OWNER_NAME SYSDBA Records affected: 150 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -4723,7 +4724,7 @@ test_script_2 = """ -- NB: 'rdb$field_name' is unique, see DDL: -- ALTER TABLE RDB$FIELDS ADD CONSTRAINT RDB$INDEX_2 UNIQUE (RDB$FIELD_NAME); select * from rdb$fields order by rdb$field_name; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -10016,11 +10017,4870 @@ RDB$OWNER_NAME SYSDBA Records affected: 170 - """ +""" -@pytest.mark.version('>=4.0') +@pytest.mark.version('>=4.0,<5.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout + +# version: 5.0 +# resources: None + +substitutions_3 = [('RDB\\$DEFAULT_VALUE.*', ''), ('RDB\\$SECURITY_CLASS[ ]+SQL\\$.*', '')] + +init_script_3 = """""" + +db_3 = db_factory(sql_dialect=3, init=init_script_3) + +test_script_3 = """ + set list on; + set blob all; + set count on; + -- NB: 'rdb$field_name' is unique, see DDL: + -- ALTER TABLE RDB$FIELDS ADD CONSTRAINT RDB$INDEX_2 UNIQUE (RDB$FIELD_NAME); + select * from rdb$fields order by rdb$field_name; +""" + +act_3 = isql_act('db_3', test_script_3, substitutions=substitutions_3) + +expected_stdout_3 = """ + RDB$FIELD_NAME MON$IDLE_TIMEOUT + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME MON$IDLE_TIMER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 12 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 29 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME MON$SEC_DATABASE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 7 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 2 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME MON$STATEMENT_TIMEOUT + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME MON$STATEMENT_TIMER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 12 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 29 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME MON$WIRE_CRYPT_PLUGIN + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$ACL + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$ARGUMENT_MECHANISM + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$ARGUMENT_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$ATTACHMENT_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 16 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$AUTH_METHOD + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 255 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 2 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$BACKUP_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$BACKUP_LEVEL + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$BACKUP_STATE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$BOOLEAN + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 23 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$BOUND + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CALL_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 16 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CHARACTER_SET_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CLIENT_VERSION + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 255 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 2 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$COLLATION_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$COLLATION_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CONFIG_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CONFIG_IS_SET + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 23 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CONFIG_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 63 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 2 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CONFIG_VALUE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1020 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 255 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CONSTRAINT_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CONSTRAINT_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 11 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CONTEXT_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1020 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 255 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CONTEXT_VAR_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 80 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CONTEXT_VAR_VALUE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 32765 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$COUNTER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 16 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$CRYPT_STATE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$DBKEY_LENGTH + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$DBTZ_VERSION + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 10 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 2 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$DEBUG_INFO + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 9 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$DEFERRABLE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + blr_version5, + blr_literal, blr_text2, 2,0, 2,0, 'N','O', + blr_eoc + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 3 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 1 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$DESCRIPTOR + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 6 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$DIMENSION + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$DIMENSIONS + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$EDIT_STRING + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 127 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$ENGINE_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$EXCEPTION_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$EXCEPTION_NUMBER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$EXTERNAL_DESCRIPTION + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 8 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$EXTERNAL_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 255 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FIELD_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FIELD_LENGTH + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FIELD_POSITION + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FIELD_PRECISION + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FIELD_SCALE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FILE_FLAGS + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FILE_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 255 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 2 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FILE_LENGTH + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FILE_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 255 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FILE_NAME2 + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1020 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 255 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FILE_PARTITIONS + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FILE_P_OFFSET + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FILE_SEQUENCE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FILE_START + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FORMAT + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FUNCTION_BLR + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FUNCTION_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FUNCTION_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$FUNCTION_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$GENERATOR_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$GENERATOR_INCREMENT + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$GENERATOR_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$GENERATOR_VALUE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 16 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$GENERIC_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$GENERIC_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$GUID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 38 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$HOST_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1020 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 255 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$IDENTITY_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$INDEX_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$INDEX_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$ISOLATION_MODE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$KEYWORD_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 63 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 2 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$KEYWORD_RESERVED + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 23 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$LINGER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$LOCK_TIMEOUT + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$MAP_DB + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$MAP_FROM + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1020 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 255 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$MAP_FROM_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$MAP_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$MAP_TO + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$MAP_USING + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH 1 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$MATCH_OPTION + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + blr_version5, + blr_literal, blr_text2, 2,0, 4,0, 'F','U','L','L', + blr_eoc + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 7 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$MECHANISM + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$MESSAGE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1023 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$MESSAGE_NUMBER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$NULL_FLAG + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$NUMBER_OF_CHARACTERS + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$ODS_NUMBER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$OS_USER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1020 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 255 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PACKAGE_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PAGE_BUFFERS + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PAGE_NUMBER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PAGE_SEQUENCE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PAGE_SIZE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PARAMETER_MECHANISM + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PARAMETER_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PARAMETER_NUMBER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PARAMETER_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PLAN + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 1 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PLUGIN + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PRIVILEGE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 6 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PROCEDURE_BLR + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PROCEDURE_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PROCEDURE_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PROCEDURE_PARAMETERS + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PROCEDURE_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$PUBLICATION_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$QUERY_HEADER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 1 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$RELATION_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$REMOTE_ADDRESS + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 255 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 2 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$REMOTE_PROTOCOL + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 10 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 2 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$REMOTE_VERSION + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 255 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 2 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$REPLICA_MODE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$RULE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + blr_version5, + blr_literal, blr_text2, 2,0, 8,0, 'R','E','S','T','R','I','C','T', + blr_eoc + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 11 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 0 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$RUNTIME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 5 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SCN + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SEGMENT_COUNT + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SEGMENT_LENGTH + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SHADOW_NUMBER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SHUTDOWN_MODE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SOURCE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 1 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SOURCE_INFO + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SPECIFIC_ATTRIBUTES + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 1 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SQL_DIALECT + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SQL_SECURITY + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 23 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$STATE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$STATEMENT_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 16 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$STATISTICS + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 27 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$STAT_GROUP + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$STAT_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SWEEP_INTERVAL + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 1 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + blr_version5, + blr_literal, blr_text2, 1,0, 8,0, 0,0,0,0,0,0,0,0, + blr_eoc + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 1 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 1 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TIMESTAMP + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 35 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TIMESTAMP_TZ + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 12 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 29 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TIME_ZONE_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 4 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 8 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TIME_ZONE_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TIME_ZONE_OFFSET + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TRANSACTION_DESCRIPTION + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 7 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 16 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TRANSACTION_STATE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TRIGGER_BLR + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TRIGGER_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TRIGGER_SEQUENCE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 16 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$TYPE_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$USER + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 14 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$VALIDATION_BLR + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$VALUE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$VIEW_BLR + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 8 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 261 + RDB$FIELD_SUB_TYPE 2 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH 80 + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME RDB$VIEW_CONTEXT + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 2 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 7 + RDB$FIELD_SUB_TYPE + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH + RDB$COLLATION_ID + RDB$CHARACTER_SET_ID + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME SEC$KEY + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME SEC$NAME_PART + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 128 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 32 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME SEC$USER_NAME + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 252 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 63 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + RDB$FIELD_NAME SEC$VALUE + RDB$QUERY_NAME + RDB$VALIDATION_BLR + RDB$VALIDATION_SOURCE + RDB$COMPUTED_BLR + RDB$COMPUTED_SOURCE + RDB$DEFAULT_SOURCE + RDB$FIELD_LENGTH 1020 + RDB$FIELD_SCALE 0 + RDB$FIELD_TYPE 37 + RDB$FIELD_SUB_TYPE 3 + RDB$MISSING_VALUE + RDB$MISSING_SOURCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$QUERY_HEADER + RDB$SEGMENT_LENGTH + RDB$EDIT_STRING + RDB$EXTERNAL_LENGTH + RDB$EXTERNAL_SCALE + RDB$EXTERNAL_TYPE + RDB$DIMENSIONS + RDB$NULL_FLAG 0 + RDB$CHARACTER_LENGTH 255 + RDB$COLLATION_ID 0 + RDB$CHARACTER_SET_ID 4 + RDB$FIELD_PRECISION + RDB$OWNER_NAME SYSDBA + + Records affected: 172 +""" + +@pytest.mark.version('>=5.0') +def test_3(act_3: Action): + act_3.expected_stdout = expected_stdout_3 + act_3.execute() + assert act_3.clean_stdout == act_3.clean_expected_stdout diff --git a/tests/functional/basic/db/test_08.py b/tests/functional/basic/db/test_08.py index a47b80a2..7f92c905 100644 --- a/tests/functional/basic/db/test_08.py +++ b/tests/functional/basic/db/test_08.py @@ -28,17 +28,17 @@ test_script_1 = """ rdb$file_name ,rdb$file_sequence ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_10.py b/tests/functional/basic/db/test_10.py index 8ac4ce9f..12cac708 100644 --- a/tests/functional/basic/db/test_10.py +++ b/tests/functional/basic/db/test_10.py @@ -29,17 +29,17 @@ test_script_1 = """ rdb$relation_id ,rdb$format ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_11.py b/tests/functional/basic/db/test_11.py index 512b576b..396444b3 100644 --- a/tests/functional/basic/db/test_11.py +++ b/tests/functional/basic/db/test_11.py @@ -32,19 +32,19 @@ test_script_1 = """ select * from rdb$function_arguments fa order by fa.rdb$function_name, fa.rdb$argument_position; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -61,7 +61,7 @@ test_script_2 = """ select * from rdb$function_arguments fa order by fa.rdb$function_name, fa.rdb$argument_position; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -90,11 +90,11 @@ expected_stdout_2 = """ RDB$DESCRIPTION Records affected: 1 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/basic/db/test_12.py b/tests/functional/basic/db/test_12.py index bd84268e..b1cb4c2d 100644 --- a/tests/functional/basic/db/test_12.py +++ b/tests/functional/basic/db/test_12.py @@ -32,19 +32,19 @@ test_script_1 = """ select * from rdb$functions rf order by rdb$engine_name, rf.rdb$package_name, rf.rdb$function_name, rdb$module_name, rdb$entrypoint; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -61,7 +61,7 @@ test_script_2 = """ select * from rdb$functions rf order by rdb$engine_name, rf.rdb$package_name, rf.rdb$function_name, rdb$module_name, rdb$entrypoint; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -89,11 +89,11 @@ expected_stdout_2 = """ RDB$SQL_SECURITY Records affected: 1 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/basic/db/test_13.py b/tests/functional/basic/db/test_13.py index f3d11303..94732878 100644 --- a/tests/functional/basic/db/test_13.py +++ b/tests/functional/basic/db/test_13.py @@ -48,7 +48,7 @@ test_script_1 = """ ,rdb$description as gen_descr_blob_id from rdb$generators g order by g.rdb$generator_id; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -162,11 +162,11 @@ expected_stdout_1 = """ Implicit generator name Records affected: 11 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_14.py b/tests/functional/basic/db/test_14.py index 5c3e763c..278cbcba 100644 --- a/tests/functional/basic/db/test_14.py +++ b/tests/functional/basic/db/test_14.py @@ -28,17 +28,17 @@ test_script_1 = """ rdb$constraint_name ,rdb$trigger_name ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_15.py b/tests/functional/basic/db/test_15.py index 7df0bf82..02f44b90 100644 --- a/tests/functional/basic/db/test_15.py +++ b/tests/functional/basic/db/test_15.py @@ -32,7 +32,7 @@ test_script_1 = """ select rs.* from rdb$index_segments rs order by lpad( trim(replace(rdb$index_name, 'RDB$INDEX_', '')),31,'0'), rdb$field_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -374,13 +374,13 @@ expected_stdout_1 = """ Records affected: 67 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -397,7 +397,7 @@ test_script_2 = """ select rs.* from rdb$index_segments rs order by lpad( trim(replace(rdb$index_name, 'RDB$INDEX_', '')),31,'0'), rdb$field_name; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -773,11 +773,11 @@ expected_stdout_2 = """ RDB$STATISTICS Records affected: 74 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/basic/db/test_16.py b/tests/functional/basic/db/test_16.py index 00ee80a2..e6e61bfe 100644 --- a/tests/functional/basic/db/test_16.py +++ b/tests/functional/basic/db/test_16.py @@ -60,7 +60,7 @@ test_script_1 = """ ,rdb$expression_source as expr_src_blob_id from rdb$indices order by rdb$index_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -836,13 +836,13 @@ expected_stdout_1 = """ EXPR_BLR_BLOB_ID EXPR_SRC_BLOB_ID Records affected: 54 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -887,7 +887,7 @@ test_script_2 = """ ,rdb$expression_source as expr_src_blob_id from rdb$indices order by rdb$index_name; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -1709,11 +1709,11 @@ expected_stdout_2 = """ Records affected: 57 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/basic/db/test_18.py b/tests/functional/basic/db/test_18.py index b45facde..54eae1f2 100644 --- a/tests/functional/basic/db/test_18.py +++ b/tests/functional/basic/db/test_18.py @@ -42,7 +42,7 @@ test_script_1 = """ select rdb$relation_id, rdb$page_sequence, rdb$page_type from rdb$pages order by 1,2,3; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -351,13 +351,13 @@ expected_stdout_1 = """ RDB$PAGE_TYPE 6 Records affected: 74 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -388,7 +388,7 @@ test_script_2 = """ select rdb$relation_id, rdb$page_sequence, rdb$page_type from rdb$pages order by 1,2,3; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -714,11 +714,11 @@ expected_stdout_2 = """ RDB$PAGE_TYPE 6 Records affected: 78 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/basic/db/test_19.py b/tests/functional/basic/db/test_19.py index 3f08ce58..1d019cd1 100644 --- a/tests/functional/basic/db/test_19.py +++ b/tests/functional/basic/db/test_19.py @@ -32,19 +32,19 @@ test_script_1 = """ select * from rdb$procedure_parameters order by rdb$procedure_name,rdb$parameter_name,rdb$parameter_number; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -61,7 +61,7 @@ test_script_2 = """ select * from rdb$procedure_parameters order by rdb$procedure_name,rdb$parameter_name,rdb$parameter_number; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -196,11 +196,11 @@ expected_stdout_2 = """ RDB$PACKAGE_NAME RDB$TIME_ZONE_UTIL Records affected: 8 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/basic/db/test_20.py b/tests/functional/basic/db/test_20.py index 3ae10a05..0e949420 100644 --- a/tests/functional/basic/db/test_20.py +++ b/tests/functional/basic/db/test_20.py @@ -30,19 +30,19 @@ test_script_1 = """ select p.* from rdb$procedures p order by p.rdb$procedure_id; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -60,7 +60,7 @@ test_script_2 = """ select p.* from rdb$procedures p order by p.rdb$procedure_id; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -86,11 +86,11 @@ expected_stdout_2 = """ RDB$SQL_SECURITY Records affected: 1 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/basic/db/test_21.py b/tests/functional/basic/db/test_21.py index ad731178..4b4b502d 100644 --- a/tests/functional/basic/db/test_21.py +++ b/tests/functional/basic/db/test_21.py @@ -24,17 +24,17 @@ test_script_1 = """ set list on; set count on; select * from rdb$ref_constraints order by rdb$constraint_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_22.py b/tests/functional/basic/db/test_22.py index deebcc12..58778174 100644 --- a/tests/functional/basic/db/test_22.py +++ b/tests/functional/basic/db/test_22.py @@ -26,7 +26,7 @@ test_script_1 = """ select rc.* from rdb$relation_constraints rc order by lpad( trim(replace(rdb$constraint_name, 'RDB$INDEX_', '')),31,'0'); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -220,13 +220,13 @@ expected_stdout_1 = """ RDB$INITIALLY_DEFERRED NO RDB$INDEX_NAME RDB$INDEX_53 Records affected: 27 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -243,7 +243,7 @@ test_script_2 = """ select rc.* from rdb$relation_constraints rc order by lpad( trim(replace(rdb$constraint_name, 'RDB$INDEX_', '')),31,'0'); - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -460,11 +460,11 @@ expected_stdout_2 = """ Records affected: 30 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/basic/db/test_23.py b/tests/functional/basic/db/test_23.py index 47f5ad38..1708a21d 100644 --- a/tests/functional/basic/db/test_23.py +++ b/tests/functional/basic/db/test_23.py @@ -2,10 +2,17 @@ # # id: functional.basic.db.23 # title: Empty DB - RDB$RELATIONS -# decription: Check for correct content of RDB$RELATIONS in empty database. +# decription: +# Check for correct content of RDB$RELATIONS in empty database. +# Checked on: +# 2.5.9.27152 +# 3.0.8.33468 +# 4.0.0.2491 +# 5.0.0.43 // 21.05.2021: created separate section for this major FB version. +# # tracker_id: # min_versions: ['2.5.7'] -# versions: 3.0, 4.0 +# versions: 3.0, 4.0, 5.0 # qmid: functional.basic.db.db_23 import pytest @@ -60,7 +67,7 @@ test_script_1 = """ --,rdb$default_class from rdb$relations order by rdb$relation_id; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -1173,13 +1180,13 @@ expected_stdout_1 = """ Records affected: 50 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -1232,7 +1239,7 @@ test_script_2 = """ --,rdb$default_class from rdb$relations order by RDB$RELATION_NAME; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -2413,11 +2420,1263 @@ expected_stdout_2 = """ Records affected: 54 - """ +""" -@pytest.mark.version('>=4.0') +@pytest.mark.version('>=4.0,<5.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout + +# version: 5.0 +# resources: None + +substitutions_3 = [('VIEW_BLR_BLOB_ID.*', ''), ('VIEW_SRC_BLOB_ID.*', ''), ('DESCR_BLOB_ID.*', ''), ('RUNTIME_BLOB_ID.*', ''), ('EXT_DESCR_BLOB_ID.*', ''), ('RDB\\$TRIGGER_.*', '')] + +init_script_3 = """""" + +db_3 = db_factory(sql_dialect=3, init=init_script_3) + +test_script_3 = """ + -- 28.10.2015. + -- 1. Removed from output BLOB IDs for fields rdb$security_class and rdb$default_class - they changes very often. + -- 2. Added blocks to 'substitution' section to: + -- 2.1 Suppress possible differences when check IDs of all BLOB fields. + -- 2.2. Ignore values of IDs in lines like "trigger_name: RDB$TRIGGER_**". + -- 3. Added query to select FIELDS list of table because main check does not use asterisk + -- and we have to know if DDL of table will have any changes in future. + + set list on; + set blob all; + set count on; + + -- Query for check whether fields list of table was changed: + select rf.rdb$field_name + from rdb$relation_fields rf + where rf.rdb$relation_name = upper('rdb$relations') + order by rf.rdb$field_name; + + -- Main test query. + -- NB: rdb$relation_name is unique column, see DDL: + -- ALTER TABLE RDB$RELATIONS ADD CONSTRAINT RDB$INDEX_0 UNIQUE (RDB$RELATION_NAME); + select + rdb$relation_id + ,rdb$relation_name + ,rdb$system_flag + ,rdb$dbkey_length + ,rdb$format + ,rdb$field_id + ,rdb$flags + ,rdb$relation_type + ,rdb$owner_name + ,rdb$external_file + ,rdb$view_blr as view_blr_blob_id + ,rdb$view_source as view_src_blob_id + ,rdb$description as descr_blob_id + ,rdb$runtime as runtime_blob_id + ,rdb$external_description as ext_descr_blob_id + --,rdb$security_class + --,rdb$default_class + from rdb$relations + order by RDB$RELATION_NAME; +""" + +act_3 = isql_act('db_3', test_script_3, substitutions=substitutions_3) + +expected_stdout_3 = """ + RDB$FIELD_NAME RDB$DBKEY_LENGTH + + RDB$FIELD_NAME RDB$DEFAULT_CLASS + + RDB$FIELD_NAME RDB$DESCRIPTION + + RDB$FIELD_NAME RDB$EXTERNAL_DESCRIPTION + + RDB$FIELD_NAME RDB$EXTERNAL_FILE + + RDB$FIELD_NAME RDB$FIELD_ID + + RDB$FIELD_NAME RDB$FLAGS + + RDB$FIELD_NAME RDB$FORMAT + + RDB$FIELD_NAME RDB$OWNER_NAME + + RDB$FIELD_NAME RDB$RELATION_ID + + RDB$FIELD_NAME RDB$RELATION_NAME + + RDB$FIELD_NAME RDB$RELATION_TYPE + + RDB$FIELD_NAME RDB$RUNTIME + + RDB$FIELD_NAME RDB$SECURITY_CLASS + + RDB$FIELD_NAME RDB$SQL_SECURITY + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + + RDB$FIELD_NAME RDB$VIEW_BLR + + RDB$FIELD_NAME RDB$VIEW_SOURCE + + + Records affected: 18 + + RDB$RELATION_ID 34 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 27 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 37 + RDB$RELATION_NAME MON$CALL_STACK + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 10 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 40 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 4 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 33 + RDB$RELATION_NAME MON$DATABASE + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 28 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 38 + RDB$RELATION_NAME MON$IO_STATS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 6 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 41 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 6 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 39 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 17 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 36 + RDB$RELATION_NAME MON$STATEMENTS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 10 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 49 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 4 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 35 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 13 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 45 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 10 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 32 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 6 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 28 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 11 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 24 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 2 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID 6:1e4 + Field id: 0 + name: RDB$CONSTRAINT_NAME + Field id: 1 + name: RDB$TRIGGER_NAME + trigger_name: RDB$TRIGGER_14 + trigger_name: RDB$TRIGGER_15 + trigger_name: RDB$TRIGGER_35 + trigger_name: RDB$TRIGGER_16 + + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 29 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 11 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 53 + RDB$RELATION_NAME RDB$CONFIG + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 6 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 1 + RDB$RELATION_NAME RDB$DATABASE + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 6 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 47 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 2 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 13 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 6 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 30 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 7 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 2 + RDB$RELATION_NAME RDB$FIELDS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 30 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID 6:1e8 + Field id: 0 + name: RDB$FIELD_NAME + Field id: 1 + name: RDB$QUERY_NAME + Field id: 2 + name: RDB$VALIDATION_BLR + Field id: 3 + name: RDB$VALIDATION_SOURCE + Field id: 4 + name: RDB$COMPUTED_BLR + Field id: 5 + name: RDB$COMPUTED_SOURCE + Field id: 6 + name: RDB$DEFAULT_VALUE + Field id: 7 + name: RDB$DEFAULT_SOURCE + Field id: 8 + name: RDB$FIELD_LENGTH + Field id: 9 + name: RDB$FIELD_SCALE + Field id: 10 + name: RDB$FIELD_TYPE + Field id: 11 + name: RDB$FIELD_SUB_TYPE + Field id: 12 + name: RDB$MISSING_VALUE + Field id: 13 + name: RDB$MISSING_SOURCE + Field id: 14 + name: RDB$DESCRIPTION + Field id: 15 + name: RDB$SYSTEM_FLAG + field_not_null + Field id: 16 + name: RDB$QUERY_HEADER + Field id: 17 + name: RDB$SEGMENT_LENGTH + Field id: 18 + name: RDB$EDIT_STRING + Field id: 19 + name: RDB$EXTERNAL_LENGTH + Field id: 20 + name: RDB$EXTERNAL_SCALE + Field id: 21 + name: RDB$EXTERNAL_TYPE + Field id: 22 + name: RDB$DIMENSIONS + Field id: 23 + name: RDB$NULL_FLAG + Field id: 24 + name: RDB$CHARACTER_LENGTH + Field id: 25 + name: RDB$COLLATION_ID + Field id: 26 + name: RDB$CHARACTER_SET_ID + Field id: 27 + name: RDB$FIELD_PRECISION + Field id: 28 + name: RDB$SECURITY_CLASS + Field id: 29 + name: RDB$OWNER_NAME + trigger_name: RDB$TRIGGER_36 + + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 21 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 4 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 10 + RDB$RELATION_NAME RDB$FILES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 6 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 16 + RDB$RELATION_NAME RDB$FILTERS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 9 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 8 + RDB$RELATION_NAME RDB$FORMATS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 3 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 14 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 21 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 15 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 22 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 20 + RDB$RELATION_NAME RDB$GENERATORS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 8 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 3 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 4 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID 6:1e5 + Field id: 0 + name: RDB$INDEX_NAME + Field id: 1 + name: RDB$FIELD_NAME + Field id: 2 + name: RDB$FIELD_POSITION + Field id: 3 + name: RDB$STATISTICS + trigger_name: RDB$TRIGGER_17 + trigger_name: RDB$TRIGGER_18 + + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 4 + RDB$RELATION_NAME RDB$INDICES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 13 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID 6:1e6 + Field id: 0 + name: RDB$INDEX_NAME + Field id: 1 + name: RDB$RELATION_NAME + Field id: 2 + name: RDB$INDEX_ID + Field id: 3 + name: RDB$UNIQUE_FLAG + Field id: 4 + name: RDB$DESCRIPTION + Field id: 5 + name: RDB$SEGMENT_COUNT + Field id: 6 + name: RDB$INDEX_INACTIVE + Field id: 7 + name: RDB$INDEX_TYPE + Field id: 8 + name: RDB$FOREIGN_KEY + Field id: 9 + name: RDB$SYSTEM_FLAG + field_not_null + Field id: 10 + name: RDB$EXPRESSION_BLR + Field id: 11 + name: RDB$EXPRESSION_SOURCE + Field id: 12 + name: RDB$STATISTICS + trigger_name: RDB$TRIGGER_20 + trigger_name: RDB$TRIGGER_19 + + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 54 + RDB$RELATION_NAME RDB$KEYWORDS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 2 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 25 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 6 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 42 + RDB$RELATION_NAME RDB$PACKAGES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 9 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 0 + RDB$RELATION_NAME RDB$PAGES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 4 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 26 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 19 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 27 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 15 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 51 + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 5 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 52 + RDB$RELATION_NAME RDB$PUBLICATION_TABLES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 2 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 23 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 5 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID 6:1e3 + Field id: 0 + name: RDB$CONSTRAINT_NAME + Field id: 1 + name: RDB$CONST_NAME_UQ + Field id: 2 + name: RDB$MATCH_OPTION + default_value: + blr_version5, + blr_literal, blr_text2, 2,0, 4,0, 'F','U','L','L', + blr_eoc + Field id: 3 + name: RDB$UPDATE_RULE + default_value: + blr_version5, + blr_literal, blr_text2, 2,0, 8,0, 'R','E','S','T','R','I','C','T', + blr_eoc + Field id: 4 + name: RDB$DELETE_RULE + default_value: + blr_version5, + blr_literal, blr_text2, 2,0, 8,0, 'R','E','S','T','R','I','C','T', + blr_eoc + trigger_name: RDB$TRIGGER_12 + trigger_name: RDB$TRIGGER_13 + + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 6 + RDB$RELATION_NAME RDB$RELATIONS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 18 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 22 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 6 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID 6:1e2 + Field id: 0 + name: RDB$CONSTRAINT_NAME + Field id: 1 + name: RDB$CONSTRAINT_TYPE + Field id: 2 + name: RDB$RELATION_NAME + Field id: 3 + name: RDB$DEFERRABLE + default_value: + blr_version5, + blr_literal, blr_text2, 2,0, 2,0, 'N','O', + blr_eoc + Field id: 4 + name: RDB$INITIALLY_DEFERRED + default_value: + blr_version5, + blr_literal, blr_text2, 2,0, 2,0, 'N','O', + blr_eoc + Field id: 5 + name: RDB$INDEX_NAME + trigger_name: RDB$TRIGGER_10 + trigger_name: RDB$TRIGGER_11 + trigger_name: RDB$TRIGGER_34 + trigger_name: RDB$TRIGGER_25 + trigger_name: RDB$TRIGGER_26 + + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 5 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 21 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID 6:1e7 + Field id: 0 + name: RDB$FIELD_NAME + Field id: 1 + name: RDB$RELATION_NAME + Field id: 2 + name: RDB$FIELD_SOURCE + Field id: 3 + name: RDB$QUERY_NAME + Field id: 4 + name: RDB$BASE_FIELD + Field id: 5 + name: RDB$EDIT_STRING + Field id: 6 + name: RDB$FIELD_POSITION + Field id: 7 + name: RDB$QUERY_HEADER + Field id: 8 + name: RDB$UPDATE_FLAG + Field id: 9 + name: RDB$FIELD_ID + Field id: 10 + name: RDB$VIEW_CONTEXT + Field id: 11 + name: RDB$DESCRIPTION + Field id: 12 + name: RDB$DEFAULT_VALUE + Field id: 13 + name: RDB$SYSTEM_FLAG + field_not_null + Field id: 14 + name: RDB$SECURITY_CLASS + Field id: 15 + name: RDB$COMPLEX_NAME + Field id: 16 + name: RDB$NULL_FLAG + Field id: 17 + name: RDB$DEFAULT_SOURCE + Field id: 18 + name: RDB$COLLATION_ID + Field id: 19 + name: RDB$GENERATOR_NAME + Field id: 20 + name: RDB$IDENTITY_TYPE + trigger_name: RDB$TRIGGER_23 + trigger_name: RDB$TRIGGER_24 + trigger_name: RDB$TRIGGER_27 + + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 31 + RDB$RELATION_NAME RDB$ROLES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 6 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 9 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 3 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 50 + RDB$RELATION_NAME RDB$TIME_ZONES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 2 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 19 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 4 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 12 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 15 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID 6:1e1 + Field id: 0 + name: RDB$TRIGGER_NAME + Field id: 1 + name: RDB$RELATION_NAME + Field id: 2 + name: RDB$TRIGGER_SEQUENCE + Field id: 3 + name: RDB$TRIGGER_TYPE + Field id: 4 + name: RDB$TRIGGER_SOURCE + Field id: 5 + name: RDB$TRIGGER_BLR + Field id: 6 + name: RDB$DESCRIPTION + Field id: 7 + name: RDB$TRIGGER_INACTIVE + Field id: 8 + name: RDB$SYSTEM_FLAG + field_not_null + Field id: 9 + name: RDB$FLAGS + Field id: 10 + name: RDB$VALID_BLR + Field id: 11 + name: RDB$DEBUG_INFO + Field id: 12 + name: RDB$ENGINE_NAME + Field id: 13 + name: RDB$ENTRYPOINT + Field id: 14 + name: RDB$SQL_SECURITY + trigger_name: RDB$TRIGGER_2 + trigger_name: RDB$TRIGGER_3 + trigger_name: RDB$TRIGGER_21 + trigger_name: RDB$TRIGGER_22 + + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 17 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 3 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 11 + RDB$RELATION_NAME RDB$TYPES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 5 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 18 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 8 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID 6:1e0 + Field id: 0 + name: RDB$USER + Field id: 1 + name: RDB$GRANTOR + Field id: 2 + name: RDB$PRIVILEGE + Field id: 3 + name: RDB$GRANT_OPTION + Field id: 4 + name: RDB$RELATION_NAME + Field id: 5 + name: RDB$FIELD_NAME + Field id: 6 + name: RDB$USER_TYPE + Field id: 7 + name: RDB$OBJECT_TYPE + trigger_name: RDB$TRIGGER_1 + trigger_name: RDB$TRIGGER_8 + trigger_name: RDB$TRIGGER_9 + + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 7 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 6 + RDB$FLAGS + RDB$RELATION_TYPE 0 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 48 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 2 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 46 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 8 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 43 + RDB$RELATION_NAME SEC$USERS + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 8 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + RDB$RELATION_ID 44 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$SYSTEM_FLAG 1 + RDB$DBKEY_LENGTH 8 + RDB$FORMAT 0 + RDB$FIELD_ID 4 + RDB$FLAGS + RDB$RELATION_TYPE 3 + RDB$OWNER_NAME SYSDBA + RDB$EXTERNAL_FILE + VIEW_BLR_BLOB_ID + VIEW_SRC_BLOB_ID + DESCR_BLOB_ID + RUNTIME_BLOB_ID + EXT_DESCR_BLOB_ID + + + Records affected: 55 +""" + +@pytest.mark.version('>=5.0') +def test_3(act_3: Action): + act_3.expected_stdout = expected_stdout_3 + act_3.execute() + assert act_3.clean_stdout == act_3.clean_expected_stdout diff --git a/tests/functional/basic/db/test_24.py b/tests/functional/basic/db/test_24.py index 4ee60c64..3d7b51c0 100644 --- a/tests/functional/basic/db/test_24.py +++ b/tests/functional/basic/db/test_24.py @@ -2,10 +2,17 @@ # # id: functional.basic.db.24 # title: Empty DB - RDB$RELATION_FIELDS -# decription: Check for correct content of RDB$RELATION_FIELDS in empty database. +# decription: +# Check for correct content of RDB$RELATION_FIELDS in empty database. +# Checked on: +# 2.5.9.27152 +# 3.0.8.33468 +# 4.0.0.2491 +# 5.0.0.43 // 21.05.2021: created separate section for this major FB version. +# # tracker_id: # min_versions: ['2.5.7'] -# versions: 3.0, 4.0 +# versions: 3.0, 4.0, 4.1 # qmid: functional.basic.db.db_24 import pytest @@ -28,7 +35,7 @@ test_script_1 = """ select * from rdb$relation_fields rf order by rf.rdb$field_name, rf.rdb$relation_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -10110,13 +10117,13 @@ expected_stdout_1 = """ RDB$GENERATOR_NAME RDB$IDENTITY_TYPE - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -10136,7 +10143,7 @@ test_script_2 = """ select * from rdb$relation_fields rf order by rf.rdb$field_name, rf.rdb$relation_name; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -21034,11 +21041,11000 @@ expected_stdout_2 = """ Records affected: 495 - """ +""" -@pytest.mark.version('>=4.0') +@pytest.mark.version('>=4.0,<4.1') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout + +# version: 4.1 +# resources: None + +substitutions_3 = [('RDB\\$SECURITY_CLASS[ ]+SQL\\$.*', '')] + +init_script_3 = """""" + +db_3 = db_factory(sql_dialect=3, init=init_script_3) + +test_script_3 = """ + -- ##################################################################################### + -- 5.0 + -- ##################################################################################### + set list on; + set count on; + select * + from rdb$relation_fields rf + order by rf.rdb$field_name, rf.rdb$relation_name; +""" + +act_3 = isql_act('db_3', test_script_3, substitutions=substitutions_3) + +expected_stdout_3 = """ + RDB$FIELD_NAME MON$ATTACHMENT_ID + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$ATTACHMENT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$ATTACHMENT_ID + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_SOURCE RDB$ATTACHMENT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$ATTACHMENT_ID + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_SOURCE RDB$ATTACHMENT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$ATTACHMENT_ID + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$ATTACHMENT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$ATTACHMENT_NAME + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$FILE_NAME2 + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$AUTH_METHOD + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$AUTH_METHOD + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 18 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 18 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$AUTO_COMMIT + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$AUTO_UNDO + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$BACKUP_STATE + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$BACKUP_STATE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 18 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 18 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$BACKVERSION_READS + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 13 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 13 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$CALLER_ID + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_SOURCE RDB$CALL_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$CALL_ID + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_SOURCE RDB$CALL_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$CHARACTER_SET_ID + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$CHARACTER_SET_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$CLIENT_VERSION + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$CLIENT_VERSION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 14 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 14 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$CREATION_DATE + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$TIMESTAMP_TZ + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 15 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 15 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$CRYPT_PAGE + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 19 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 19 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$CRYPT_STATE + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$CRYPT_STATE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 22 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 22 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$DATABASE_NAME + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$FILE_NAME2 + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$EXPLAINED_PLAN + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$FILE_ID + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$FILE_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 24 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 24 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$FORCED_WRITES + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 13 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 13 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$FRAGMENT_READS + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 14 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 14 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$GARBAGE_COLLECTION + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$GUID + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$GUID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 23 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 23 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$IDLE_TIMEOUT + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE MON$IDLE_TIMEOUT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 20 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 20 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$IDLE_TIMER + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE MON$IDLE_TIMER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 21 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 21 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$ISOLATION_MODE + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$ISOLATION_MODE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$LOCK_TIMEOUT + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$LOCK_TIMEOUT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$MAX_MEMORY_ALLOCATED + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$MAX_MEMORY_USED + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$MEMORY_ALLOCATED + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$MEMORY_USED + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$NEXT_ATTACHMENT + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$ATTACHMENT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 25 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 25 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$NEXT_STATEMENT + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$STATEMENT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 26 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 26 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$NEXT_TRANSACTION + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$OBJECT_NAME + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_SOURCE RDB$GENERIC_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$OBJECT_TYPE + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_SOURCE RDB$OBJECT_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$ODS_MAJOR + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$ODS_NUMBER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$ODS_MINOR + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$ODS_NUMBER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$OLDEST_ACTIVE + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$OLDEST_ACTIVE + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$OLDEST_SNAPSHOT + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$OLDEST_TRANSACTION + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$OLDEST_TRANSACTION + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$OWNER + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 20 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 20 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$PACKAGE_NAME + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_SOURCE RDB$PACKAGE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$PAGES + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 16 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 16 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$PAGE_BUFFERS + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$PAGE_BUFFERS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$PAGE_FETCHES + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$PAGE_MARKS + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$PAGE_READS + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$PAGE_SIZE + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$PAGE_SIZE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$PAGE_WRITES + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$READ_ONLY + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$READ_ONLY + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_BACKOUTS + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_CONFLICTS + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_DELETES + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_EXPUNGES + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_IDX_READS + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_IMGC + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 16 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 16 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_INSERTS + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_LOCKS + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_PURGES + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_RPT_READS + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 15 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 15 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_SEQ_READS + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_STAT_ID + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_SOURCE RDB$STAT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_UPDATES + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RECORD_WAITS + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$COUNTER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$REMOTE_ADDRESS + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$REMOTE_ADDRESS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$REMOTE_HOST + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$HOST_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 16 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 16 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$REMOTE_OS_USER + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$OS_USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 17 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 17 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$REMOTE_PID + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$PID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$REMOTE_PROCESS + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$FILE_NAME2 + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$REMOTE_PROTOCOL + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$REMOTE_PROTOCOL + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$REMOTE_VERSION + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$REMOTE_VERSION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 15 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 15 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$REPLICA_MODE + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$REPLICA_MODE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 27 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 27 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$RESERVE_SPACE + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 14 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 14 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$ROLE + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$SEC_DATABASE + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE MON$SEC_DATABASE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 21 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 21 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$SERVER_PID + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$PID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$SESSION_TIMEZONE + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$TIME_ZONE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 26 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 26 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$SHUTDOWN_MODE + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$SHUTDOWN_MODE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$SOURCE_COLUMN + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_SOURCE RDB$SOURCE_INFO + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$SOURCE_LINE + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_SOURCE RDB$SOURCE_INFO + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$SQL_DIALECT + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$SQL_DIALECT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$SQL_TEXT + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STATE + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$STATE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STATE + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_SOURCE RDB$STATE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STATE + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$STATE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STATEMENT_ID + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_SOURCE RDB$STATEMENT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STATEMENT_ID + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_SOURCE RDB$STATEMENT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STATEMENT_TIMEOUT + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE MON$STATEMENT_TIMEOUT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 22 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 22 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STATEMENT_TIMEOUT + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_SOURCE MON$STATEMENT_TIMEOUT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STATEMENT_TIMER + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_SOURCE MON$STATEMENT_TIMER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_GROUP + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_SOURCE RDB$STAT_GROUP + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_GROUP + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_SOURCE RDB$STAT_GROUP + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_GROUP + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$STAT_GROUP + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_GROUP + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_SOURCE RDB$STAT_GROUP + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_ID + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$STAT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 13 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 13 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_ID + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_SOURCE RDB$STAT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_ID + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$STAT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 17 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 17 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_ID + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_SOURCE RDB$STAT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_ID + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_SOURCE RDB$STAT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_ID + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_SOURCE RDB$STAT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_ID + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_SOURCE RDB$STAT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_ID + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_SOURCE RDB$STAT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$STAT_ID + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$STAT_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$SWEEP_INTERVAL + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_SOURCE RDB$SWEEP_INTERVAL + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$SYSTEM_FLAG + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 19 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 19 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$TABLE_NAME + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$TIMESTAMP + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$TIMESTAMP_TZ + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$TIMESTAMP + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_SOURCE RDB$TIMESTAMP_TZ + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$TIMESTAMP + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_SOURCE RDB$TIMESTAMP_TZ + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$TIMESTAMP + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$TIMESTAMP_TZ + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$TOP_TRANSACTION + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$TRANSACTION_ID + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_SOURCE RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$TRANSACTION_ID + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_SOURCE RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$TRANSACTION_ID + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_SOURCE RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$USER + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$VARIABLE_NAME + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_SOURCE RDB$CONTEXT_VAR_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$VARIABLE_VALUE + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_SOURCE RDB$CONTEXT_VAR_VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$WIRE_COMPRESSED + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$BOOLEAN + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 23 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 23 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$WIRE_CRYPT_PLUGIN + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE MON$WIRE_CRYPT_PLUGIN + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 25 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 25 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME MON$WIRE_ENCRYPTED + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_SOURCE RDB$BOOLEAN + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 24 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 24 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ACL + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_SOURCE RDB$ACL + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ACTIVE_FLAG + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ARGUMENT_MECHANISM + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$ARGUMENT_MECHANISM + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 17 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 17 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ARGUMENT_NAME + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$ARGUMENT_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ARGUMENT_POSITION + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$FIELD_POSITION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$AUTO_ENABLE + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$BACKUP_ID + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_SOURCE RDB$BACKUP_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$BACKUP_LEVEL + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_SOURCE RDB$BACKUP_LEVEL + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$BASE_COLLATION_NAME + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_SOURCE RDB$COLLATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$BASE_FIELD + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$BYTES_PER_CHARACTER + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_SOURCE RDB$FIELD_LENGTH + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CHARACTER_LENGTH + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$FIELD_LENGTH + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 24 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 24 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CHARACTER_LENGTH + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$FIELD_LENGTH + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CHARACTER_SET_ID + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_SOURCE RDB$CHARACTER_SET_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CHARACTER_SET_ID + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_SOURCE RDB$CHARACTER_SET_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CHARACTER_SET_ID + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$CHARACTER_SET_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 26 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 26 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CHARACTER_SET_ID + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$CHARACTER_SET_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_SOURCE RDB$CHARACTER_SET_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_SOURCE RDB$CHARACTER_SET_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$COLLATION_ATTRIBUTES + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_SOURCE RDB$GENERIC_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$COLLATION_ID + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_SOURCE RDB$COLLATION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$COLLATION_ID + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$COLLATION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 25 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 25 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$COLLATION_ID + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$COLLATION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 15 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 15 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$COLLATION_ID + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$COLLATION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$COLLATION_ID + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$COLLATION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 18 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 18 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$COLLATION_NAME + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_SOURCE RDB$COLLATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$COMPLEX_NAME + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 15 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 15 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$COMPUTED_BLR + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$COMPUTED_SOURCE + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONFIG_DEFAULT + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_SOURCE RDB$CONFIG_VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONFIG_ID + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_SOURCE RDB$CONFIG_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONFIG_IS_SET + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_SOURCE RDB$CONFIG_IS_SET + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONFIG_NAME + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_SOURCE RDB$CONFIG_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONFIG_SOURCE + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_SOURCE RDB$FILE_NAME2 + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONFIG_VALUE + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_SOURCE RDB$CONFIG_VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONSTRAINT_NAME + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_SOURCE RDB$CONSTRAINT_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONSTRAINT_NAME + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_SOURCE RDB$CONSTRAINT_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONSTRAINT_NAME + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_SOURCE RDB$CONSTRAINT_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONSTRAINT_TYPE + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_SOURCE RDB$CONSTRAINT_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONST_NAME_UQ + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_SOURCE RDB$CONSTRAINT_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONTEXT_NAME + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_SOURCE RDB$CONTEXT_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$CONTEXT_TYPE + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_SOURCE RDB$VIEW_CONTEXT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DBKEY_LENGTH + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$DBKEY_LENGTH + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEBUG_INFO + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$DEBUG_INFO + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 15 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 15 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEBUG_INFO + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$DEBUG_INFO + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 13 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 13 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEBUG_INFO + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$DEBUG_INFO + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEFAULT_CLASS + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 14 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 14 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEFAULT_COLLATE_NAME + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_SOURCE RDB$COLLATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEFAULT_SOURCE + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEFAULT_SOURCE + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 14 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 14 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEFAULT_SOURCE + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEFAULT_SOURCE + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 17 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 17 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEFAULT_VALUE + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEFAULT_VALUE + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 13 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 13 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEFAULT_VALUE + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEFAULT_VALUE + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEFERRABLE + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_SOURCE RDB$DEFERRABLE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DELETE_RULE + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_SOURCE RDB$RULE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEPENDED_ON_NAME + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_SOURCE RDB$GENERIC_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEPENDED_ON_TYPE + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_SOURCE RDB$OBJECT_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEPENDENT_NAME + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_SOURCE RDB$GENERIC_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DEPENDENT_TYPE + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_SOURCE RDB$OBJECT_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 14 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 14 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 21 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 21 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DESCRIPTOR + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_SOURCE RDB$DESCRIPTOR + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DETERMINISTIC_FLAG + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 19 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 19 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DIMENSION + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_SOURCE RDB$DIMENSION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$DIMENSIONS + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$DIMENSIONS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 22 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 22 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$EDIT_STRING + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$EDIT_STRING + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 18 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 18 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$EDIT_STRING + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$EDIT_STRING + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ENGINE_NAME + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$ENGINE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ENGINE_NAME + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$ENGINE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 14 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 14 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ENGINE_NAME + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$ENGINE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ENTRYPOINT + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_SOURCE RDB$EXTERNAL_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ENTRYPOINT + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$EXTERNAL_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ENTRYPOINT + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$EXTERNAL_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 15 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 15 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ENTRYPOINT + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$EXTERNAL_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 13 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 13 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$EXCEPTION_NAME + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_SOURCE RDB$EXCEPTION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$EXCEPTION_NUMBER + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_SOURCE RDB$EXCEPTION_NUMBER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$EXPRESSION_BLR + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$EXPRESSION_SOURCE + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$EXTERNAL_DESCRIPTION + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$EXTERNAL_DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$EXTERNAL_FILE + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$FILE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$EXTERNAL_LENGTH + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$FIELD_LENGTH + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 19 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 19 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$EXTERNAL_SCALE + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$FIELD_SCALE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 20 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 20 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$EXTERNAL_TYPE + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$FIELD_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 21 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 21 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_ID + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$FIELD_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_ID + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$FIELD_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_LENGTH + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$FIELD_LENGTH + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_LENGTH + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$FIELD_LENGTH + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_NAME + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_NAME + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_NAME + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_NAME + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 18 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 18 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_NAME + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_NAME + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_NAME + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_NAME + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_NAME + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_POSITION + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_SOURCE RDB$FIELD_POSITION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_POSITION + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$FIELD_POSITION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_PRECISION + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$FIELD_PRECISION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 27 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 27 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_PRECISION + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$FIELD_PRECISION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_SCALE + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$FIELD_SCALE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_SCALE + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$FIELD_SCALE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_SOURCE + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_SOURCE + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_SOURCE + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$FIELD_SUB_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$FIELD_SUB_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$FIELD_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$FIELD_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_FLAGS + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_SOURCE RDB$FILE_FLAGS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_FLAGS + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_SOURCE RDB$FILE_FLAGS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_LENGTH + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_SOURCE RDB$FILE_LENGTH + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_LENGTH + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_SOURCE RDB$FILE_LENGTH + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_NAME + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_SOURCE RDB$FILE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_NAME + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_SOURCE RDB$FILE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_NAME + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_SOURCE RDB$FILE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_PARTITIONS + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_SOURCE RDB$FILE_PARTITIONS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_P_OFFSET + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_SOURCE RDB$FILE_P_OFFSET + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_SEQUENCE + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_SOURCE RDB$FILE_SEQUENCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_SEQUENCE + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_SOURCE RDB$FILE_SEQUENCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FILE_START + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_SOURCE RDB$FILE_START + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FLAGS + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 15 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 15 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FLAGS + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FOREIGN_KEY + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FORMAT + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_SOURCE RDB$FORMAT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FORMAT + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$FORMAT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FORM_OF_USE + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_SOURCE RDB$GENERIC_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FUNCTION_BLR + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$FUNCTION_BLR + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 13 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 13 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FUNCTION_ID + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$FUNCTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FUNCTION_NAME + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_SOURCE RDB$FUNCTION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FUNCTION_NAME + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_SOURCE RDB$FUNCTION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FUNCTION_NAME + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_SOURCE RDB$FUNCTION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FUNCTION_NAME + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$FUNCTION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FUNCTION_NAME + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$FUNCTION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FUNCTION_SOURCE + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$FUNCTION_TYPE + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$FUNCTION_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$GENERATOR_ID + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_SOURCE RDB$GENERATOR_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$GENERATOR_INCREMENT + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_SOURCE RDB$GENERATOR_INCREMENT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$GENERATOR_NAME + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_SOURCE RDB$GENERATOR_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$GENERATOR_NAME + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$GENERATOR_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 19 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 19 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$GRANTOR + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$GRANT_OPTION + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$GUID + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_SOURCE RDB$GUID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$IDENTITY_TYPE + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$IDENTITY_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 20 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 20 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$INDEX_ID + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$INDEX_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$INDEX_INACTIVE + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$INDEX_NAME + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_SOURCE RDB$INDEX_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$INDEX_NAME + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$INDEX_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$INDEX_NAME + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_SOURCE RDB$INDEX_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$INDEX_TYPE + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$INITIALLY_DEFERRED + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_SOURCE RDB$DEFERRABLE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$INITIAL_VALUE + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_SOURCE RDB$GENERATOR_VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$INPUT_SUB_TYPE + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_SOURCE RDB$FIELD_SUB_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$KEYWORD_NAME + RDB$RELATION_NAME RDB$KEYWORDS + RDB$FIELD_SOURCE RDB$KEYWORD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$KEYWORD_RESERVED + RDB$RELATION_NAME RDB$KEYWORDS + RDB$FIELD_SOURCE RDB$KEYWORD_RESERVED + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$LEGACY_FLAG + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 18 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 18 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$LINGER + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_SOURCE RDB$LINGER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$LOWER_BOUND + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_SOURCE RDB$BOUND + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MAP_DB + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_DB + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MAP_FROM + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_FROM + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MAP_FROM_TYPE + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_FROM_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MAP_NAME + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MAP_PLUGIN + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_SOURCE RDB$PLUGIN + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MAP_TO + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_TO + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MAP_TO_TYPE + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_SOURCE RDB$OBJECT_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MAP_USING + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_USING + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MATCH_OPTION + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_SOURCE RDB$MATCH_OPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MECHANISM + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$MECHANISM + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MESSAGE + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_SOURCE RDB$MESSAGE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MESSAGE + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_SOURCE RDB$MESSAGE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MESSAGE_NUMBER + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_SOURCE RDB$MESSAGE_NUMBER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MISSING_SOURCE + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 13 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 13 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MISSING_VALUE + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MODULE_NAME + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_SOURCE RDB$FILE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$MODULE_NAME + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$FILE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$NULL_FLAG + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$NULL_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 23 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 23 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$NULL_FLAG + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$NULL_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 16 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 16 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$NULL_FLAG + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$NULL_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$NULL_FLAG + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$NULL_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 16 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 16 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$NUMBER_OF_CHARACTERS + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_SOURCE RDB$NUMBER_OF_CHARACTERS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_SOURCE RDB$OBJECT_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OUTPUT_SUB_TYPE + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_SOURCE RDB$FIELD_SUB_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 29 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 29 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 17 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 17 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 13 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 13 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PACKAGE_BODY_SOURCE + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PACKAGE_HEADER_SOURCE + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PACKAGE_NAME + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_SOURCE RDB$PACKAGE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PACKAGE_NAME + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$PACKAGE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PACKAGE_NAME + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$PACKAGE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PACKAGE_NAME + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_SOURCE RDB$PACKAGE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PACKAGE_NAME + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$PACKAGE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 16 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 16 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PACKAGE_NAME + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$PACKAGE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 14 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 14 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PACKAGE_NAME + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_SOURCE RDB$PACKAGE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PAGE_NUMBER + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_SOURCE RDB$PAGE_NUMBER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PAGE_SEQUENCE + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_SOURCE RDB$PAGE_SEQUENCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_SOURCE RDB$PAGE_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PARAMETER_MECHANISM + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$MECHANISM + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PARAMETER_NAME + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$PARAMETER_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PARAMETER_NUMBER + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$PARAMETER_NUMBER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PARAMETER_TYPE + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$PARAMETER_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PRIVATE_FLAG + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PRIVATE_FLAG + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 17 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 17 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PRIVILEGE + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_SOURCE RDB$PRIVILEGE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PROCEDURE_BLR + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$PROCEDURE_BLR + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PROCEDURE_ID + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$PROCEDURE_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PROCEDURE_INPUTS + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$PROCEDURE_PARAMETERS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PROCEDURE_NAME + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$PROCEDURE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PROCEDURE_NAME + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$PROCEDURE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PROCEDURE_OUTPUTS + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$PROCEDURE_PARAMETERS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PROCEDURE_SOURCE + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PROCEDURE_TYPE + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$PROCEDURE_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PUBLICATION_NAME + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$FIELD_SOURCE RDB$PUBLICATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$PUBLICATION_NAME + RDB$RELATION_NAME RDB$PUBLICATION_TABLES + RDB$FIELD_SOURCE RDB$PUBLICATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$QUERY_HEADER + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$QUERY_HEADER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 16 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 16 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$QUERY_HEADER + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$QUERY_HEADER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$QUERY_NAME + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$QUERY_NAME + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$QUERY_NAME + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$FIELD_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_ID + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_SOURCE RDB$RELATION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_ID + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_SOURCE RDB$RELATION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_ID + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_SOURCE RDB$RELATION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_ID + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$RELATION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_NAME + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 19 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 19 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_NAME + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_NAME + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 13 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 13 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_NAME + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_NAME + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_NAME + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_NAME + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_NAME + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_SOURCE RDB$GENERIC_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_NAME + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$RELATION_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 16 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 16 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RETURN_ARGUMENT + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$FIELD_POSITION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$ROLE_NAME + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RUNTIME + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$RUNTIME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$RUNTIME + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$RUNTIME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 11 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 11 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SCN + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_SOURCE RDB$SCN + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 28 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 28 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 16 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 16 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 14 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 14 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_SOURCE RDB$SECURITY_CLASS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SEGMENT_COUNT + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$SEGMENT_COUNT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SEGMENT_LENGTH + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$SEGMENT_LENGTH + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 17 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 17 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SHADOW_NUMBER + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_SOURCE RDB$SHADOW_NUMBER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SPECIFIC_ATTRIBUTES + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_SOURCE RDB$SPECIFIC_ATTRIBUTES + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SQL_SECURITY + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_SOURCE RDB$SQL_SECURITY + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SQL_SECURITY + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$SQL_SECURITY + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 20 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 20 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SQL_SECURITY + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_SOURCE RDB$SQL_SECURITY + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SQL_SECURITY + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$SQL_SECURITY + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 18 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 18 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SQL_SECURITY + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$SQL_SECURITY + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 17 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 17 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SQL_SECURITY + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$SQL_SECURITY + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 14 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 14 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$STATISTICS + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_SOURCE RDB$STATISTICS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$STATISTICS + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$STATISTICS + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 15 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 15 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 20 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 20 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 9 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 9 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 13 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 13 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_SOURCE RDB$SYSTEM_FLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_SOURCE RDB$SYSTEM_PRIVILEGES + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TABLE_NAME + RDB$RELATION_NAME RDB$PUBLICATION_TABLES + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TIMESTAMP + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_SOURCE RDB$TIMESTAMP_TZ + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TIMESTAMP + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_SOURCE RDB$TIMESTAMP_TZ + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TIME_ZONE_ID + RDB$RELATION_NAME RDB$TIME_ZONES + RDB$FIELD_SOURCE RDB$TIME_ZONE_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TIME_ZONE_NAME + RDB$RELATION_NAME RDB$TIME_ZONES + RDB$FIELD_SOURCE RDB$TIME_ZONE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TRANSACTION_DESCRIPTION + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_SOURCE RDB$TRANSACTION_DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TRANSACTION_ID + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_SOURCE RDB$TRANSACTION_ID + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TRANSACTION_STATE + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_SOURCE RDB$TRANSACTION_STATE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TRIGGER_BLR + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$TRIGGER_BLR + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TRIGGER_INACTIVE + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TRIGGER_NAME + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_SOURCE RDB$TRIGGER_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TRIGGER_NAME + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$TRIGGER_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TRIGGER_NAME + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_SOURCE RDB$TRIGGER_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TRIGGER_SEQUENCE + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$TRIGGER_SEQUENCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TRIGGER_SOURCE + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$TRIGGER_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TYPE + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_SOURCE RDB$GENERIC_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$TYPE_NAME + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_SOURCE RDB$TYPE_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$UNIQUE_FLAG + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$UPDATE_FLAG + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 8 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 8 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$UPDATE_RULE + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_SOURCE RDB$RULE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$UPPER_BOUND + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_SOURCE RDB$BOUND + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$USER + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$USER + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$USER_TYPE + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_SOURCE RDB$OBJECT_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$USER_TYPE + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_SOURCE RDB$OBJECT_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$VALIDATION_BLR + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$VALIDATION_BLR + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$VALIDATION_SOURCE + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$VALID_BLR + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 14 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 14 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$VALID_BLR + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 12 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 12 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$VALID_BLR + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$VALID_BODY_FLAG + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_SOURCE RDB$SYSTEM_NULLFLAG + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$VIEW_BLR + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$VIEW_BLR + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$VIEW_CONTEXT + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_SOURCE RDB$VIEW_CONTEXT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 10 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 10 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$VIEW_CONTEXT + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_SOURCE RDB$VIEW_CONTEXT + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$VIEW_NAME + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_SOURCE RDB$RELATION_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME RDB$VIEW_SOURCE + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_SOURCE RDB$SOURCE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 1 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$ACTIVE + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_SOURCE RDB$BOOLEAN + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$ADMIN + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_SOURCE RDB$BOOLEAN + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$DESCRIPTION + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_SOURCE RDB$DESCRIPTION + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$FIRST_NAME + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_SOURCE SEC$NAME_PART + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$KEY + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_SOURCE SEC$KEY + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$LAST_NAME + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_SOURCE SEC$NAME_PART + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$MAP_DB + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_DB + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$MAP_FROM + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_FROM + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 5 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 5 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$MAP_FROM_TYPE + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_FROM_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 4 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 4 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$MAP_NAME + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_NAME + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$MAP_PLUGIN + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_SOURCE RDB$PLUGIN + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$MAP_TO + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_TO + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$MAP_TO_TYPE + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_SOURCE RDB$OBJECT_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 6 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 6 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$MAP_USING + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_SOURCE RDB$MAP_USING + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$MIDDLE_NAME + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_SOURCE SEC$NAME_PART + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$PLUGIN + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_SOURCE RDB$PLUGIN + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 7 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 7 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$PLUGIN + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_SOURCE RDB$PLUGIN + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 3 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 3 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$USER + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$USER_NAME + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$USER_NAME + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_SOURCE RDB$USER + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 0 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 0 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$USER_TYPE + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_SOURCE RDB$OBJECT_TYPE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 1 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 1 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + RDB$FIELD_NAME SEC$VALUE + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_SOURCE SEC$VALUE + RDB$QUERY_NAME + RDB$BASE_FIELD + RDB$EDIT_STRING + RDB$FIELD_POSITION 2 + RDB$QUERY_HEADER + RDB$UPDATE_FLAG 0 + RDB$FIELD_ID 2 + RDB$VIEW_CONTEXT + RDB$DESCRIPTION + RDB$DEFAULT_VALUE + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS + RDB$COMPLEX_NAME + RDB$NULL_FLAG + RDB$DEFAULT_SOURCE + RDB$COLLATION_ID + RDB$GENERATOR_NAME + RDB$IDENTITY_TYPE + + + Records affected: 498 +""" + +@pytest.mark.version('>=4.1') +def test_3(act_3: Action): + act_3.expected_stdout = expected_stdout_3 + act_3.execute() + assert act_3.clean_stdout == act_3.clean_expected_stdout diff --git a/tests/functional/basic/db/test_25.py b/tests/functional/basic/db/test_25.py index d49810a4..7f7ecc84 100644 --- a/tests/functional/basic/db/test_25.py +++ b/tests/functional/basic/db/test_25.py @@ -25,7 +25,7 @@ test_script_1 = """ set count on; -- NB: rdb$role_name is UNIQUE column. select * from rdb$roles order by rdb$role_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -34,16 +34,16 @@ expected_stdout_1 = """ RDB$OWNER_NAME SYSDBA RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - RDB$SECURITY_CLASS + RDB$SECURITY_CLASS SQL$162 Records affected: 1 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -59,7 +59,7 @@ test_script_2 = """ set count on; -- NB: rdb$role_name is UNIQUE column. select * from rdb$roles order by rdb$role_name; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -72,11 +72,11 @@ expected_stdout_2 = """ RDB$SYSTEM_PRIVILEGES FFFFFFFFFFFFFFFF Records affected: 1 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/basic/db/test_26.py b/tests/functional/basic/db/test_26.py index ff428023..378b085b 100644 --- a/tests/functional/basic/db/test_26.py +++ b/tests/functional/basic/db/test_26.py @@ -2,10 +2,17 @@ # # id: functional.basic.db.26 # title: Empty DB - RDB$SECURITY_CLASSES -# decription: Check for correct content of RDB$SECURITY_CLASSES in empty database. +# decription: +# Check for correct content of RDB$SECURITY_CLASSES in empty database. +# Checked on: +# 2.5.9.27152 +# 3.0.8.33468 +# 4.0.0.2491 +# 5.0.0.43 // 21.05.2021: created separate section for this major FB version. +# # tracker_id: # min_versions: ['2.5.7'] -# versions: 3.0, 4.0 +# versions: 3.0, 4.0, 5.0 # qmid: functional.basic.db.db_26 import pytest @@ -31,3820 +38,3828 @@ test_script_1 = """ select * from rdb$security_classes order by rdb$security_class; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ -RDB$SECURITY_CLASS SQL$1 -RDB$ACL 9:0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$1 + RDB$ACL 9:0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$10 -RDB$ACL 9:9 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$10 + RDB$ACL 9:9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$100 -RDB$ACL 9:63 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$100 + RDB$ACL 9:63 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$101 -RDB$ACL 9:64 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$101 + RDB$ACL 9:64 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$102 -RDB$ACL 9:65 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$102 + RDB$ACL 9:65 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$103 -RDB$ACL 9:66 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$103 + RDB$ACL 9:66 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$104 -RDB$ACL 9:67 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$104 + RDB$ACL 9:67 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$105 -RDB$ACL 9:68 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$105 + RDB$ACL 9:68 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$106 -RDB$ACL 9:69 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$106 + RDB$ACL 9:69 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$107 -RDB$ACL 9:6a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$107 + RDB$ACL 9:6a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$108 -RDB$ACL 9:6b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$108 + RDB$ACL 9:6b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$109 -RDB$ACL 9:6c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$109 + RDB$ACL 9:6c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION - -RDB$SECURITY_CLASS SQL$11 -RDB$ACL 9:a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$11 + RDB$ACL 9:a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$110 -RDB$ACL 9:6d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$110 + RDB$ACL 9:6d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$111 -RDB$ACL 9:6e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$111 + RDB$ACL 9:6e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$112 -RDB$ACL 9:6f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$112 + RDB$ACL 9:6f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$113 -RDB$ACL 9:70 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$113 + RDB$ACL 9:70 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$114 -RDB$ACL 9:71 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$114 + RDB$ACL 9:71 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$115 -RDB$ACL 9:72 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$115 + RDB$ACL 9:72 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$116 -RDB$ACL 9:73 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$116 + RDB$ACL 9:73 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$117 -RDB$ACL 9:74 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$117 + RDB$ACL 9:74 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$118 -RDB$ACL 9:75 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$118 + RDB$ACL 9:75 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$119 -RDB$ACL 9:76 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$119 + RDB$ACL 9:76 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$12 -RDB$ACL 9:b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$12 + RDB$ACL 9:b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$120 -RDB$ACL 9:77 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$120 + RDB$ACL 9:77 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$121 -RDB$ACL 9:78 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$121 + RDB$ACL 9:78 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$122 -RDB$ACL 9:79 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$122 + RDB$ACL 9:79 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$123 -RDB$ACL 9:7a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$123 + RDB$ACL 9:7a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$124 -RDB$ACL 9:7b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$124 + RDB$ACL 9:7b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$125 -RDB$ACL 9:7c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$125 + RDB$ACL 9:7c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$126 -RDB$ACL 9:7d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$126 + RDB$ACL 9:7d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$127 -RDB$ACL 9:7e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$127 + RDB$ACL 9:7e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$128 -RDB$ACL 9:7f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$128 + RDB$ACL 9:7f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$129 -RDB$ACL 9:80 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$129 + RDB$ACL 9:80 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$13 -RDB$ACL 9:c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$13 + RDB$ACL 9:c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$130 -RDB$ACL 9:81 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$130 + RDB$ACL 9:81 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$131 -RDB$ACL 9:82 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$131 + RDB$ACL 9:82 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$132 -RDB$ACL 9:83 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$132 + RDB$ACL 9:83 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$133 -RDB$ACL 9:84 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$133 + RDB$ACL 9:84 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$134 -RDB$ACL 9:85 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$134 + RDB$ACL 9:85 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$135 -RDB$ACL 9:86 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$135 + RDB$ACL 9:86 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$136 -RDB$ACL 9:87 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$136 + RDB$ACL 9:87 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$137 -RDB$ACL 9:5a0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$137 + RDB$ACL 9:5a0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$138 -RDB$ACL 9:5a1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$138 + RDB$ACL 9:5a1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$139 -RDB$ACL 9:5a2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$139 + RDB$ACL 9:5a2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$14 -RDB$ACL 9:d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$14 + RDB$ACL 9:d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$140 -RDB$ACL 9:5a3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$140 + RDB$ACL 9:5a3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$141 -RDB$ACL 9:5a4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$141 + RDB$ACL 9:5a4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$142 -RDB$ACL 9:5a5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$142 + RDB$ACL 9:5a5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$143 -RDB$ACL 9:5a6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$143 + RDB$ACL 9:5a6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$144 -RDB$ACL 9:5a7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$144 + RDB$ACL 9:5a7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$145 -RDB$ACL 9:5a8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$145 + RDB$ACL 9:5a8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$146 -RDB$ACL 9:5a9 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$146 + RDB$ACL 9:5a9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$147 -RDB$ACL 9:5aa - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$147 + RDB$ACL 9:5aa + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$148 -RDB$ACL 9:5ab - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$148 + RDB$ACL 9:5ab + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$149 -RDB$ACL 9:5ac - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$149 + RDB$ACL 9:5ac + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$15 -RDB$ACL 9:e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$15 + RDB$ACL 9:e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$150 -RDB$ACL 9:5ad - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$150 + RDB$ACL 9:5ad + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$151 -RDB$ACL 9:5ae - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$151 + RDB$ACL 9:5ae + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$152 -RDB$ACL 9:5af - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$152 + RDB$ACL 9:5af + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$153 -RDB$ACL 9:5b0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$153 + RDB$ACL 9:5b0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$154 -RDB$ACL 9:5b1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$154 + RDB$ACL 9:5b1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$155 -RDB$ACL 9:5b2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$155 + RDB$ACL 9:5b2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$156 -RDB$ACL 9:5b3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$156 + RDB$ACL 9:5b3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$157 -RDB$ACL 9:5b4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$157 + RDB$ACL 9:5b4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$158 -RDB$ACL 9:5b5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$158 + RDB$ACL 9:5b5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$159 -RDB$ACL 9:5b6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$159 + RDB$ACL 9:5b6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$16 -RDB$ACL 9:f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$16 + RDB$ACL 9:f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$160 -RDB$ACL 9:5b7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$160 + RDB$ACL 9:5b7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$161 -RDB$ACL 9:5b8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$161 + RDB$ACL 9:5b8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$162 -RDB$ACL 9:5b9 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$162 + RDB$ACL 9:5b9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$163 -RDB$ACL 9:5ba - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$163 + RDB$ACL 9:5ba + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$164 -RDB$ACL 9:5bb - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$164 + RDB$ACL 9:5bb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$165 -RDB$ACL 9:5bc - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$165 + RDB$ACL 9:5bc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$166 -RDB$ACL 9:5bd - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$166 + RDB$ACL 9:5bd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$167 -RDB$ACL 9:5be - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$167 + RDB$ACL 9:5be + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$168 -RDB$ACL 9:5bf - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$168 + RDB$ACL 9:5bf + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$169 -RDB$ACL 9:5c0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$169 + RDB$ACL 9:5c0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$17 -RDB$ACL 9:10 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$17 + RDB$ACL 9:10 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$170 -RDB$ACL 9:5c1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$170 + RDB$ACL 9:5c1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$171 -RDB$ACL 9:5c2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$171 + RDB$ACL 9:5c2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$172 -RDB$ACL 9:5c3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$172 + RDB$ACL 9:5c3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$173 -RDB$ACL 9:5c4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$173 + RDB$ACL 9:5c4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$174 -RDB$ACL 9:5c5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$174 + RDB$ACL 9:5c5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$175 -RDB$ACL 9:5c6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$175 + RDB$ACL 9:5c6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$176 -RDB$ACL 9:5c7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$176 + RDB$ACL 9:5c7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$177 -RDB$ACL 9:5c8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$177 + RDB$ACL 9:5c8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$178 -RDB$ACL 9:5c9 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$178 + RDB$ACL 9:5c9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$179 -RDB$ACL 9:5ca - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$179 + RDB$ACL 9:5ca + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$18 -RDB$ACL 9:11 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$18 + RDB$ACL 9:11 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$180 -RDB$ACL 9:5cb - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$180 + RDB$ACL 9:5cb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$181 -RDB$ACL 9:5cc - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$181 + RDB$ACL 9:5cc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$182 -RDB$ACL 9:5cd - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$182 + RDB$ACL 9:5cd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$183 -RDB$ACL 9:5ce - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$183 + RDB$ACL 9:5ce + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$184 -RDB$ACL 9:5cf - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$184 + RDB$ACL 9:5cf + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$185 -RDB$ACL 9:5d0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$185 + RDB$ACL 9:5d0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$186 -RDB$ACL 9:5d1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$186 + RDB$ACL 9:5d1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$187 -RDB$ACL 9:5d2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$187 + RDB$ACL 9:5d2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$188 -RDB$ACL 9:5d3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$188 + RDB$ACL 9:5d3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$189 -RDB$ACL 9:5d4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$189 + RDB$ACL 9:5d4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$19 -RDB$ACL 9:12 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$19 + RDB$ACL 9:12 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$190 -RDB$ACL 9:5d5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$190 + RDB$ACL 9:5d5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$191 -RDB$ACL 9:5d6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$191 + RDB$ACL 9:5d6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$192 -RDB$ACL 9:5d7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$192 + RDB$ACL 9:5d7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$193 -RDB$ACL 9:5d8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$193 + RDB$ACL 9:5d8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$194 -RDB$ACL 9:5d9 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$194 + RDB$ACL 9:5d9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$195 -RDB$ACL 9:5da - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$195 + RDB$ACL 9:5da + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$196 -RDB$ACL 9:5db - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$196 + RDB$ACL 9:5db + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$197 -RDB$ACL 9:5dc - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$197 + RDB$ACL 9:5dc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$198 -RDB$ACL 9:5dd - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$198 + RDB$ACL 9:5dd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$199 -RDB$ACL 9:5de - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$199 + RDB$ACL 9:5de + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$2 -RDB$ACL 9:1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$2 + RDB$ACL 9:1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$20 -RDB$ACL 9:13 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$20 + RDB$ACL 9:13 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$200 -RDB$ACL 9:5df - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$200 + RDB$ACL 9:5df + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$201 -RDB$ACL 9:5e0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$201 + RDB$ACL 9:5e0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$202 -RDB$ACL 9:5e1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$202 + RDB$ACL 9:5e1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$203 -RDB$ACL 9:5e2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$203 + RDB$ACL 9:5e2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$204 -RDB$ACL 9:5e3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$204 + RDB$ACL 9:5e3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$205 -RDB$ACL 9:5e4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$205 + RDB$ACL 9:5e4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$206 -RDB$ACL 9:5e5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$206 + RDB$ACL 9:5e5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$207 -RDB$ACL 9:5e6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$207 + RDB$ACL 9:5e6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$208 -RDB$ACL 9:5e7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$208 + RDB$ACL 9:5e7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$209 -RDB$ACL 9:5e8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$209 + RDB$ACL 9:5e8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$21 -RDB$ACL 9:14 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$21 + RDB$ACL 9:14 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$210 -RDB$ACL 9:5e9 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$210 + RDB$ACL 9:5e9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$211 -RDB$ACL 9:5ea - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$211 + RDB$ACL 9:5ea + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$212 -RDB$ACL 9:5eb - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$212 + RDB$ACL 9:5eb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$213 -RDB$ACL 9:5ec - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$213 + RDB$ACL 9:5ec + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$214 -RDB$ACL 9:5ed - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$214 + RDB$ACL 9:5ed + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$215 -RDB$ACL 9:5ee - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$215 + RDB$ACL 9:5ee + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$216 -RDB$ACL 9:5ef - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$216 + RDB$ACL 9:5ef + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$217 -RDB$ACL 9:5f0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$217 + RDB$ACL 9:5f0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$218 -RDB$ACL 9:5f1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$218 + RDB$ACL 9:5f1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$219 -RDB$ACL 9:5f2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$219 + RDB$ACL 9:5f2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$22 -RDB$ACL 9:15 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$22 + RDB$ACL 9:15 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$220 -RDB$ACL 9:5f3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$220 + RDB$ACL 9:5f3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$221 -RDB$ACL 9:5f4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$221 + RDB$ACL 9:5f4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$222 -RDB$ACL 9:5f5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$222 + RDB$ACL 9:5f5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$223 -RDB$ACL 9:5f6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$223 + RDB$ACL 9:5f6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$224 -RDB$ACL 9:5f7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$224 + RDB$ACL 9:5f7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$225 -RDB$ACL 9:5f8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$225 + RDB$ACL 9:5f8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$226 -RDB$ACL 9:5f9 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$226 + RDB$ACL 9:5f9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$227 -RDB$ACL 9:5fa - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$227 + RDB$ACL 9:5fa + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$228 -RDB$ACL 9:5fb - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$228 + RDB$ACL 9:5fb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$229 -RDB$ACL 9:5fc - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$229 + RDB$ACL 9:5fc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$23 -RDB$ACL 9:16 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$23 + RDB$ACL 9:16 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$230 -RDB$ACL 9:5fd - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$230 + RDB$ACL 9:5fd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$231 -RDB$ACL 9:5fe - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$231 + RDB$ACL 9:5fe + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$232 -RDB$ACL 9:5ff - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$232 + RDB$ACL 9:5ff + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$233 -RDB$ACL 9:600 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$233 + RDB$ACL 9:600 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$234 -RDB$ACL 9:601 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$234 + RDB$ACL 9:601 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$235 -RDB$ACL 9:602 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$235 + RDB$ACL 9:602 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$236 -RDB$ACL 9:603 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$236 + RDB$ACL 9:603 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$237 -RDB$ACL 9:604 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$237 + RDB$ACL 9:604 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$238 -RDB$ACL 9:605 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$238 + RDB$ACL 9:605 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$239 -RDB$ACL 9:606 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$239 + RDB$ACL 9:606 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$24 -RDB$ACL 9:17 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$24 + RDB$ACL 9:17 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$240 -RDB$ACL 9:607 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$240 + RDB$ACL 9:607 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$241 -RDB$ACL 9:608 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$241 + RDB$ACL 9:608 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$242 -RDB$ACL 9:609 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$242 + RDB$ACL 9:609 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$243 -RDB$ACL 9:60a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$243 + RDB$ACL 9:60a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$244 -RDB$ACL 9:60b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$244 + RDB$ACL 9:60b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$245 -RDB$ACL 9:60c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$245 + RDB$ACL 9:60c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$246 -RDB$ACL 9:60d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$246 + RDB$ACL 9:60d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$247 -RDB$ACL 9:60e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$247 + RDB$ACL 9:60e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$248 -RDB$ACL 9:60f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$248 + RDB$ACL 9:60f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$249 -RDB$ACL 9:610 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$249 + RDB$ACL 9:610 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$25 -RDB$ACL 9:18 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$25 + RDB$ACL 9:18 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$250 -RDB$ACL 9:611 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$250 + RDB$ACL 9:611 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$251 -RDB$ACL 9:612 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$251 + RDB$ACL 9:612 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$252 -RDB$ACL 9:613 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$252 + RDB$ACL 9:613 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$253 -RDB$ACL 9:614 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$253 + RDB$ACL 9:614 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$254 -RDB$ACL 9:615 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$254 + RDB$ACL 9:615 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$255 -RDB$ACL 9:616 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$255 + RDB$ACL 9:616 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$256 -RDB$ACL 9:617 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$256 + RDB$ACL 9:617 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$257 -RDB$ACL 9:618 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$257 + RDB$ACL 9:618 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$258 -RDB$ACL 9:619 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$258 + RDB$ACL 9:619 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$259 -RDB$ACL 9:61a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$259 + RDB$ACL 9:61a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$26 -RDB$ACL 9:19 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$26 + RDB$ACL 9:19 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$260 -RDB$ACL 9:61b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$260 + RDB$ACL 9:61b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$261 -RDB$ACL 9:61c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$261 + RDB$ACL 9:61c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$262 -RDB$ACL 9:61d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$262 + RDB$ACL 9:61d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$263 -RDB$ACL 9:61e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$263 + RDB$ACL 9:61e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$264 -RDB$ACL 9:61f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$264 + RDB$ACL 9:61f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$265 -RDB$ACL 9:620 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$265 + RDB$ACL 9:620 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$266 -RDB$ACL 9:621 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$266 + RDB$ACL 9:621 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$267 -RDB$ACL 9:622 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$267 + RDB$ACL 9:622 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$268 -RDB$ACL 9:623 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$268 + RDB$ACL 9:623 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$269 -RDB$ACL 9:624 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$269 + RDB$ACL 9:624 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$27 -RDB$ACL 9:1a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$27 + RDB$ACL 9:1a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$270 -RDB$ACL 9:625 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$270 + RDB$ACL 9:625 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$271 -RDB$ACL 9:626 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$271 + RDB$ACL 9:626 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$272 -RDB$ACL 9:627 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$272 + RDB$ACL 9:627 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$273 -RDB$ACL 9:960 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$273 + RDB$ACL 9:960 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$274 -RDB$ACL 9:961 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$274 + RDB$ACL 9:961 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$275 -RDB$ACL 9:962 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$275 + RDB$ACL 9:962 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$276 -RDB$ACL 9:963 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$276 + RDB$ACL 9:963 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$277 -RDB$ACL 9:964 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$277 + RDB$ACL 9:964 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$278 -RDB$ACL 9:965 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$278 + RDB$ACL 9:965 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$279 -RDB$ACL 9:966 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$279 + RDB$ACL 9:966 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$28 -RDB$ACL 9:1b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$28 + RDB$ACL 9:1b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$280 -RDB$ACL 9:967 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$280 + RDB$ACL 9:967 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$281 -RDB$ACL 9:968 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$281 + RDB$ACL 9:968 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$282 -RDB$ACL 9:969 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$282 + RDB$ACL 9:969 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$283 -RDB$ACL 9:96a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$283 + RDB$ACL 9:96a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$284 -RDB$ACL 9:96b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$284 + RDB$ACL 9:96b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$285 -RDB$ACL 9:96c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$285 + RDB$ACL 9:96c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$286 -RDB$ACL 9:96d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$286 + RDB$ACL 9:96d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$287 -RDB$ACL 9:96e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$287 + RDB$ACL 9:96e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$288 -RDB$ACL 9:96f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$288 + RDB$ACL 9:96f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$289 -RDB$ACL 9:970 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$289 + RDB$ACL 9:970 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$29 -RDB$ACL 9:1c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$29 + RDB$ACL 9:1c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$290 -RDB$ACL 9:971 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$290 + RDB$ACL 9:971 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$291 -RDB$ACL 9:972 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$291 + RDB$ACL 9:972 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$292 -RDB$ACL 9:973 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$292 + RDB$ACL 9:973 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$293 -RDB$ACL 9:974 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$293 + RDB$ACL 9:974 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$294 -RDB$ACL 9:975 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$294 + RDB$ACL 9:975 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$295 -RDB$ACL 9:976 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$295 + RDB$ACL 9:976 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$296 -RDB$ACL 9:977 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$296 + RDB$ACL 9:977 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$297 -RDB$ACL 9:978 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$297 + RDB$ACL 9:978 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$298 -RDB$ACL 9:979 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$298 + RDB$ACL 9:979 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$299 -RDB$ACL 9:97a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$299 + RDB$ACL 9:97a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$3 -RDB$ACL 9:2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$3 + RDB$ACL 9:2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$30 -RDB$ACL 9:1d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$30 + RDB$ACL 9:1d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$300 -RDB$ACL 9:97b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$300 + RDB$ACL 9:97b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$301 -RDB$ACL 9:97c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$301 + RDB$ACL 9:97c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$302 -RDB$ACL 9:97d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$302 + RDB$ACL 9:97d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$303 -RDB$ACL 9:97e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$303 + RDB$ACL 9:97e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$304 -RDB$ACL 9:97f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$304 + RDB$ACL 9:97f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$305 -RDB$ACL 9:980 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$305 + RDB$ACL 9:980 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$306 -RDB$ACL 9:981 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$306 + RDB$ACL 9:981 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$307 -RDB$ACL 9:982 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$307 + RDB$ACL 9:982 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$308 -RDB$ACL 9:983 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$308 + RDB$ACL 9:983 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$309 -RDB$ACL 9:984 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$309 + RDB$ACL 9:984 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$31 -RDB$ACL 9:1e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$31 + RDB$ACL 9:1e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$310 -RDB$ACL 9:985 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$310 + RDB$ACL 9:985 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$311 -RDB$ACL 9:986 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$311 + RDB$ACL 9:986 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$312 -RDB$ACL 9:987 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$312 + RDB$ACL 9:987 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$313 -RDB$ACL 9:988 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$313 + RDB$ACL 9:988 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$314 -RDB$ACL 9:989 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$314 + RDB$ACL 9:989 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$315 -RDB$ACL 9:98a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$315 + RDB$ACL 9:98a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$316 -RDB$ACL 9:98b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$316 + RDB$ACL 9:98b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$317 -RDB$ACL 9:98c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$317 + RDB$ACL 9:98c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$318 -RDB$ACL 9:98d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$318 + RDB$ACL 9:98d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$319 -RDB$ACL 9:98e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$319 + RDB$ACL 9:98e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$32 -RDB$ACL 9:1f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$32 + RDB$ACL 9:1f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$320 -RDB$ACL 9:98f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$320 + RDB$ACL 9:98f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$321 -RDB$ACL 9:990 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$321 + RDB$ACL 9:990 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$322 -RDB$ACL 9:991 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$322 + RDB$ACL 9:991 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$323 -RDB$ACL 9:992 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$323 + RDB$ACL 9:992 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$324 -RDB$ACL 9:993 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$324 + RDB$ACL 9:993 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$325 -RDB$ACL 9:994 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$325 + RDB$ACL 9:994 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$326 -RDB$ACL 9:995 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$326 + RDB$ACL 9:995 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$327 -RDB$ACL 9:996 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$327 + RDB$ACL 9:996 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$328 -RDB$ACL 9:997 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$328 + RDB$ACL 9:997 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$329 -RDB$ACL 9:998 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$329 + RDB$ACL 9:998 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$33 -RDB$ACL 9:20 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$33 + RDB$ACL 9:20 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$330 -RDB$ACL 9:999 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$330 + RDB$ACL 9:999 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$331 -RDB$ACL 9:99a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$331 + RDB$ACL 9:99a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$332 -RDB$ACL 9:99b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$332 + RDB$ACL 9:99b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$333 -RDB$ACL 9:99c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$333 + RDB$ACL 9:99c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$334 -RDB$ACL 9:99d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$334 + RDB$ACL 9:99d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$335 -RDB$ACL 9:99e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$335 + RDB$ACL 9:99e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$336 -RDB$ACL 9:99f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$336 + RDB$ACL 9:99f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$337 -RDB$ACL 9:9a0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$337 + RDB$ACL 9:9a0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$338 -RDB$ACL 9:9a1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$338 + RDB$ACL 9:9a1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$339 -RDB$ACL 9:9a2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$339 + RDB$ACL 9:9a2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$34 -RDB$ACL 9:21 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$34 + RDB$ACL 9:21 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$340 -RDB$ACL 9:9a3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$340 + RDB$ACL 9:9a3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$341 -RDB$ACL 9:9a4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$341 + RDB$ACL 9:9a4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$342 -RDB$ACL 9:9a5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$342 + RDB$ACL 9:9a5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$343 -RDB$ACL 9:9a6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$343 + RDB$ACL 9:9a6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$344 -RDB$ACL 9:9a7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$344 + RDB$ACL 9:9a7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$345 -RDB$ACL 9:9a8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$345 + RDB$ACL 9:9a8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$346 -RDB$ACL 9:9a9 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$346 + RDB$ACL 9:9a9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$347 -RDB$ACL 9:9aa - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$347 + RDB$ACL 9:9aa + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$348 -RDB$ACL 9:9ab - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$348 + RDB$ACL 9:9ab + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$349 -RDB$ACL 9:9ac - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$349 + RDB$ACL 9:9ac + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$35 -RDB$ACL 9:22 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$35 + RDB$ACL 9:22 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$350 -RDB$ACL 9:9ad - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$350 + RDB$ACL 9:9ad + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$351 -RDB$ACL 9:9ae - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$351 + RDB$ACL 9:9ae + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$352 -RDB$ACL 9:9af - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$352 + RDB$ACL 9:9af + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$353 -RDB$ACL 9:9b0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$353 + RDB$ACL 9:9b0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$354 -RDB$ACL 9:9b1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$354 + RDB$ACL 9:9b1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$355 -RDB$ACL 9:9b2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$355 + RDB$ACL 9:9b2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$356 -RDB$ACL 9:9b3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$356 + RDB$ACL 9:9b3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$357 -RDB$ACL 9:9b4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$357 + RDB$ACL 9:9b4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$358 -RDB$ACL 9:9b5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$358 + RDB$ACL 9:9b5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$359 -RDB$ACL 9:9b6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$359 + RDB$ACL 9:9b6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$36 -RDB$ACL 9:23 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$36 + RDB$ACL 9:23 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$360 -RDB$ACL 9:9b7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$360 + RDB$ACL 9:9b7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$361 -RDB$ACL 9:9b8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$361 + RDB$ACL 9:9b8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$362 -RDB$ACL 9:9b9 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$362 + RDB$ACL 9:9b9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$363 -RDB$ACL 9:9c6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$363 + RDB$ACL 9:9ba + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$364 -RDB$ACL 9:9c7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$364 + RDB$ACL 9:9c7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$365 -RDB$ACL 9:9c9 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$365 + RDB$ACL 9:9c8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$366 -RDB$ACL 9:9cb - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$366 + RDB$ACL 9:9ca + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$367 -RDB$ACL 9:9cd - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$367 + RDB$ACL 9:9cc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$368 -RDB$ACL 9:9cf - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$368 + RDB$ACL 9:9ce + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$369 -RDB$ACL 9:9d1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$369 + RDB$ACL 9:9d0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$37 -RDB$ACL 9:24 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$37 + RDB$ACL 9:24 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$370 -RDB$ACL 9:9d3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$370 + RDB$ACL 9:9d2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$371 -RDB$ACL 9:9d5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$371 + RDB$ACL 9:9d4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$372 -RDB$ACL 9:9d7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$372 + RDB$ACL 9:9d6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$373 -RDB$ACL 9:9d9 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$373 + RDB$ACL 9:9d8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$374 -RDB$ACL 9:9db - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$374 + RDB$ACL 9:9da + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$375 -RDB$ACL 9:9dd - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$375 + RDB$ACL 9:9dc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$376 -RDB$ACL 9:9df - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$376 + RDB$ACL 9:9de + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$377 -RDB$ACL 9:9e1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$377 + RDB$ACL 9:9e0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$378 -RDB$ACL 9:9e3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$378 + RDB$ACL 9:9e2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$379 -RDB$ACL 9:9e5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$379 + RDB$ACL 9:9e4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$38 -RDB$ACL 9:25 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$38 + RDB$ACL 9:25 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$380 -RDB$ACL 9:9e7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$380 + RDB$ACL 9:9e6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$381 -RDB$ACL 9:d20 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$381 + RDB$ACL 9:9e8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$382 -RDB$ACL 9:d22 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$382 + RDB$ACL 9:d21 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$383 -RDB$ACL 9:d24 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$383 + RDB$ACL 9:d23 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$384 -RDB$ACL 9:d26 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$384 + RDB$ACL 9:d25 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$385 -RDB$ACL 9:d28 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$385 + RDB$ACL 9:d27 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$386 -RDB$ACL 9:d2a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$386 + RDB$ACL 9:d29 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$387 -RDB$ACL 9:d2c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$387 + RDB$ACL 9:d2b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$388 -RDB$ACL 9:d2e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$388 + RDB$ACL 9:d2d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$389 -RDB$ACL 9:d30 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$389 + RDB$ACL 9:d2f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$39 -RDB$ACL 9:26 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$39 + RDB$ACL 9:26 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$390 -RDB$ACL 9:d32 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$390 + RDB$ACL 9:d31 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$391 -RDB$ACL 9:d34 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$391 + RDB$ACL 9:d33 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$392 -RDB$ACL 9:d36 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$392 + RDB$ACL 9:d35 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$393 -RDB$ACL 9:d38 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$393 + RDB$ACL 9:d37 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$394 -RDB$ACL 9:d3a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$394 + RDB$ACL 9:d39 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$395 -RDB$ACL 9:d3c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$395 + RDB$ACL 9:d3b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$396 -RDB$ACL 9:d3e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$396 + RDB$ACL 9:d3d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$397 -RDB$ACL 9:d40 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$397 + RDB$ACL 9:d3f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$398 -RDB$ACL 9:d42 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$398 + RDB$ACL 9:d41 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$399 -RDB$ACL 9:d44 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$399 + RDB$ACL 9:d43 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$4 -RDB$ACL 9:3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$4 + RDB$ACL 9:3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$40 -RDB$ACL 9:27 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$40 + RDB$ACL 9:27 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$400 -RDB$ACL 9:d46 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$400 + RDB$ACL 9:d45 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$401 -RDB$ACL 9:d48 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$401 + RDB$ACL 9:d47 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$402 -RDB$ACL 9:d4a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$402 + RDB$ACL 9:d49 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$403 -RDB$ACL 9:d4c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$403 + RDB$ACL 9:d4b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$404 -RDB$ACL 9:d4e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$404 + RDB$ACL 9:d4d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$405 -RDB$ACL 9:d50 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$405 + RDB$ACL 9:d4f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$406 -RDB$ACL 9:d52 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$406 + RDB$ACL 9:d51 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$407 -RDB$ACL 9:d54 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$407 + RDB$ACL 9:d53 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$408 -RDB$ACL 9:d56 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$408 + RDB$ACL 9:d55 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$409 -RDB$ACL 9:d58 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$409 + RDB$ACL 9:d57 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$41 -RDB$ACL 9:28 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$41 + RDB$ACL 9:28 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$410 -RDB$ACL 9:d5a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$410 + RDB$ACL 9:d59 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$411 -RDB$ACL 9:d5c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$411 + RDB$ACL 9:d5b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$412 -RDB$ACL 9:d5e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$412 + RDB$ACL 9:d5d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$413 -RDB$ACL 9:d60 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$413 + RDB$ACL 9:d5f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$42 -RDB$ACL 9:29 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$414 + RDB$ACL 9:d61 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$43 -RDB$ACL 9:2a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$42 + RDB$ACL 9:29 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$44 -RDB$ACL 9:2b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$43 + RDB$ACL 9:2a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$45 -RDB$ACL 9:2c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$44 + RDB$ACL 9:2b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$46 -RDB$ACL 9:2d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$45 + RDB$ACL 9:2c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$47 -RDB$ACL 9:2e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$46 + RDB$ACL 9:2d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$48 -RDB$ACL 9:2f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$47 + RDB$ACL 9:2e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$49 -RDB$ACL 9:30 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$48 + RDB$ACL 9:2f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$5 -RDB$ACL 9:4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$49 + RDB$ACL 9:30 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$50 -RDB$ACL 9:31 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$5 + RDB$ACL 9:4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$51 -RDB$ACL 9:32 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$50 + RDB$ACL 9:31 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$52 -RDB$ACL 9:33 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$51 + RDB$ACL 9:32 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$53 -RDB$ACL 9:34 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$52 + RDB$ACL 9:33 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$54 -RDB$ACL 9:35 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$53 + RDB$ACL 9:34 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$55 -RDB$ACL 9:36 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$54 + RDB$ACL 9:35 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$56 -RDB$ACL 9:37 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$55 + RDB$ACL 9:36 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$57 -RDB$ACL 9:38 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$56 + RDB$ACL 9:37 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$58 -RDB$ACL 9:39 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$57 + RDB$ACL 9:38 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$59 -RDB$ACL 9:3a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$58 + RDB$ACL 9:39 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$6 -RDB$ACL 9:5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$59 + RDB$ACL 9:3a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$60 -RDB$ACL 9:3b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$6 + RDB$ACL 9:5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$61 -RDB$ACL 9:3c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$60 + RDB$ACL 9:3b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$62 -RDB$ACL 9:3d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$61 + RDB$ACL 9:3c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$63 -RDB$ACL 9:3e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$62 + RDB$ACL 9:3d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$64 -RDB$ACL 9:3f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$63 + RDB$ACL 9:3e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$65 -RDB$ACL 9:40 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$64 + RDB$ACL 9:3f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$66 -RDB$ACL 9:41 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$65 + RDB$ACL 9:40 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$67 -RDB$ACL 9:42 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$66 + RDB$ACL 9:41 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$68 -RDB$ACL 9:43 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$67 + RDB$ACL 9:42 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$69 -RDB$ACL 9:44 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$68 + RDB$ACL 9:43 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$7 -RDB$ACL 9:6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$69 + RDB$ACL 9:44 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$70 -RDB$ACL 9:45 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$7 + RDB$ACL 9:6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$71 -RDB$ACL 9:46 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$70 + RDB$ACL 9:45 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$72 -RDB$ACL 9:47 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$71 + RDB$ACL 9:46 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$73 -RDB$ACL 9:48 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$72 + RDB$ACL 9:47 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$74 -RDB$ACL 9:49 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$73 + RDB$ACL 9:48 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$75 -RDB$ACL 9:4a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$74 + RDB$ACL 9:49 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$76 -RDB$ACL 9:4b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$75 + RDB$ACL 9:4a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$77 -RDB$ACL 9:4c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$76 + RDB$ACL 9:4b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$78 -RDB$ACL 9:4d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$77 + RDB$ACL 9:4c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$79 -RDB$ACL 9:4e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$78 + RDB$ACL 9:4d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$8 -RDB$ACL 9:7 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$79 + RDB$ACL 9:4e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$80 -RDB$ACL 9:4f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$8 + RDB$ACL 9:7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$81 -RDB$ACL 9:50 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$80 + RDB$ACL 9:4f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$82 -RDB$ACL 9:51 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$81 + RDB$ACL 9:50 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$83 -RDB$ACL 9:52 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$82 + RDB$ACL 9:51 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$84 -RDB$ACL 9:53 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$83 + RDB$ACL 9:52 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$85 -RDB$ACL 9:54 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$84 + RDB$ACL 9:53 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$86 -RDB$ACL 9:55 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$85 + RDB$ACL 9:54 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$87 -RDB$ACL 9:56 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$86 + RDB$ACL 9:55 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$88 -RDB$ACL 9:57 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$87 + RDB$ACL 9:56 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$89 -RDB$ACL 9:58 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$88 + RDB$ACL 9:57 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$9 -RDB$ACL 9:8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$89 + RDB$ACL 9:58 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$90 -RDB$ACL 9:59 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$9 + RDB$ACL 9:8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$91 -RDB$ACL 9:5a - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$90 + RDB$ACL 9:59 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$92 -RDB$ACL 9:5b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$91 + RDB$ACL 9:5a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$93 -RDB$ACL 9:5c - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$92 + RDB$ACL 9:5b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$94 -RDB$ACL 9:5d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$93 + RDB$ACL 9:5c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$95 -RDB$ACL 9:5e - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$94 + RDB$ACL 9:5d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$96 -RDB$ACL 9:5f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$95 + RDB$ACL 9:5e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$97 -RDB$ACL 9:60 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$96 + RDB$ACL 9:5f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$98 -RDB$ACL 9:61 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$97 + RDB$ACL 9:60 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$99 -RDB$ACL 9:62 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, usage) - all users: (*.*), privileges: (usage) + RDB$SECURITY_CLASS SQL$98 + RDB$ACL 9:61 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$CHARSETS -RDB$ACL 9:9c3 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$99 + RDB$ACL 9:62 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$COLLATIONS -RDB$ACL 9:9c4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$CHARSETS + RDB$ACL 9:9c4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT1 -RDB$ACL 9:9c8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$COLLATIONS + RDB$ACL 9:9c5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT10 -RDB$ACL 9:9da - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT1 + RDB$ACL 9:9c9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT11 -RDB$ACL 9:9dc - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT10 + RDB$ACL 9:9db + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT12 -RDB$ACL 9:9de - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT11 + RDB$ACL 9:9dd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT13 -RDB$ACL 9:9e0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT12 + RDB$ACL 9:9df + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT14 -RDB$ACL 9:9e2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT13 + RDB$ACL 9:9e1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT15 -RDB$ACL 9:9e4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT14 + RDB$ACL 9:9e3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT16 -RDB$ACL 9:9e6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT15 + RDB$ACL 9:9e5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT17 -RDB$ACL 9:9e8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT16 + RDB$ACL 9:9e7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT18 -RDB$ACL 9:d21 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT17 + RDB$ACL 9:d20 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT19 -RDB$ACL 9:d23 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT18 + RDB$ACL 9:d22 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT2 -RDB$ACL 9:9ca - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT19 + RDB$ACL 9:d24 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT20 -RDB$ACL 9:d25 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT2 + RDB$ACL 9:9cb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT21 -RDB$ACL 9:d27 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT20 + RDB$ACL 9:d26 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT22 -RDB$ACL 9:d29 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT21 + RDB$ACL 9:d28 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT23 -RDB$ACL 9:d2b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT22 + RDB$ACL 9:d2a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT24 -RDB$ACL 9:d2d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT23 + RDB$ACL 9:d2c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT25 -RDB$ACL 9:d2f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT24 + RDB$ACL 9:d2e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT26 -RDB$ACL 9:d31 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT25 + RDB$ACL 9:d30 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT27 -RDB$ACL 9:d33 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT26 + RDB$ACL 9:d32 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT28 -RDB$ACL 9:d35 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT27 + RDB$ACL 9:d34 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT29 -RDB$ACL 9:d37 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT28 + RDB$ACL 9:d36 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT3 -RDB$ACL 9:9cc - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT29 + RDB$ACL 9:d38 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT30 -RDB$ACL 9:d39 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT3 + RDB$ACL 9:9cd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT31 -RDB$ACL 9:d3b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT30 + RDB$ACL 9:d3a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT32 -RDB$ACL 9:d3d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT31 + RDB$ACL 9:d3c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT33 -RDB$ACL 9:d3f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT32 + RDB$ACL 9:d3e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT34 -RDB$ACL 9:d41 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT33 + RDB$ACL 9:d40 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT35 -RDB$ACL 9:d43 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT34 + RDB$ACL 9:d42 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT36 -RDB$ACL 9:d45 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT35 + RDB$ACL 9:d44 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT37 -RDB$ACL 9:d47 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT36 + RDB$ACL 9:d46 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT38 -RDB$ACL 9:d49 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT37 + RDB$ACL 9:d48 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT39 -RDB$ACL 9:d4b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT38 + RDB$ACL 9:d4a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT4 -RDB$ACL 9:9ce - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT39 + RDB$ACL 9:d4c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT40 -RDB$ACL 9:d4d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT4 + RDB$ACL 9:9cf + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT41 -RDB$ACL 9:d4f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT40 + RDB$ACL 9:d4e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT42 -RDB$ACL 9:d51 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT41 + RDB$ACL 9:d50 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT43 -RDB$ACL 9:d53 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT42 + RDB$ACL 9:d52 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT44 -RDB$ACL 9:d55 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT43 + RDB$ACL 9:d54 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT45 -RDB$ACL 9:d57 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT44 + RDB$ACL 9:d56 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT46 -RDB$ACL 9:d59 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT45 + RDB$ACL 9:d58 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT47 -RDB$ACL 9:d5b - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT46 + RDB$ACL 9:d5a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT48 -RDB$ACL 9:d5d - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT47 + RDB$ACL 9:d5c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT49 -RDB$ACL 9:d5f - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT48 + RDB$ACL 9:d5e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT5 -RDB$ACL 9:9d0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT49 + RDB$ACL 9:d60 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT50 -RDB$ACL 9:d61 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT5 + RDB$ACL 9:9d1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT6 -RDB$ACL 9:9d2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT50 + RDB$ACL 9:d62 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT7 -RDB$ACL 9:9d4 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT6 + RDB$ACL 9:9d3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT8 -RDB$ACL 9:9d6 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT7 + RDB$ACL 9:9d5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DEFAULT9 -RDB$ACL 9:9d8 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) - all users: (*.*), privileges: (select) + RDB$SECURITY_CLASS SQL$DEFAULT8 + RDB$ACL 9:9d7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$DOMAINS -RDB$ACL 9:9c0 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$DEFAULT9 + RDB$ACL 9:9d9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$EXCEPTIONS -RDB$ACL 9:9c1 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$DOMAINS + RDB$ACL 9:9c1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$FILTERS -RDB$ACL 9:9c5 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$EXCEPTIONS + RDB$ACL 9:9c2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$FUNCTIONS -RDB$ACL 9:9bd - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$FILTERS + RDB$ACL 9:9c6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$GENERATORS -RDB$ACL 9:9bf - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$FUNCTIONS + RDB$ACL 9:9be + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$PACKAGES -RDB$ACL 9:9be - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$GENERATORS + RDB$ACL 9:9c0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$PROCEDURES -RDB$ACL 9:9bc - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$PACKAGES + RDB$ACL 9:9bf + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$ROLES -RDB$ACL 9:9c2 - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$PROCEDURES + RDB$ACL 9:9bd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$TABLES -RDB$ACL 9:9ba - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$ROLES + RDB$ACL 9:9c3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION -RDB$SECURITY_CLASS SQL$VIEWS -RDB$ACL 9:9bb - ACL version 1 - person: SYSDBA, privileges: (control, alter, drop) - all users: (*.*), privileges: () + RDB$SECURITY_CLASS SQL$TABLES + RDB$ACL 9:9bb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -RDB$DESCRIPTION + RDB$DESCRIPTION + RDB$SECURITY_CLASS SQL$VIEWS + RDB$ACL 9:9bc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () -Records affected: 475 + RDB$DESCRIPTION + + + Records affected: 476 """ @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -3863,7 +3878,7 @@ test_script_2 = """ select * from rdb$security_classes order by rdb$security_class; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -7916,11 +7931,4122 @@ expected_stdout_2 = """ Records affected: 505 - """ +""" -@pytest.mark.version('>=4.0') +@pytest.mark.version('>=4.0,<5.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout + +# version: 5.0 +# resources: None + +substitutions_3 = [('RDB\\$ACL.*', ''), ('RDB\\$SECURITY_CLASS[\\s]+SQL\\$.*', 'RDB\\$SECURITY_CLASS SQL\\$'), ('[\t ]+', ' ')] + +init_script_3 = """""" + +db_3 = db_factory(sql_dialect=3, init=init_script_3) + +test_script_3 = """ + set list on; + set blob 3; + set count on; + -- NB: 'rdb$security_class' is unique field, see DDL. + select * + from rdb$security_classes + order by rdb$security_class; +""" + +act_3 = isql_act('db_3', test_script_3, substitutions=substitutions_3) + +expected_stdout_3 = """ + + RDB$SECURITY_CLASS SQL$1 + RDB$ACL 9:0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$10 + RDB$ACL 9:9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$100 + RDB$ACL 9:63 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$101 + RDB$ACL 9:64 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$102 + RDB$ACL 9:65 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$103 + RDB$ACL 9:66 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$104 + RDB$ACL 9:67 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$105 + RDB$ACL 9:68 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$106 + RDB$ACL 9:69 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$107 + RDB$ACL 9:6a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$108 + RDB$ACL 9:6b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$109 + RDB$ACL 9:6c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$11 + RDB$ACL 9:a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$110 + RDB$ACL 9:6d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$111 + RDB$ACL 9:6e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$112 + RDB$ACL 9:6f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$113 + RDB$ACL 9:70 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$114 + RDB$ACL 9:71 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$115 + RDB$ACL 9:72 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$116 + RDB$ACL 9:73 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$117 + RDB$ACL 9:74 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$118 + RDB$ACL 9:75 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$119 + RDB$ACL 9:76 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$12 + RDB$ACL 9:b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$120 + RDB$ACL 9:77 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$121 + RDB$ACL 9:78 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$122 + RDB$ACL 9:79 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$123 + RDB$ACL 9:7a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$124 + RDB$ACL 9:7b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$125 + RDB$ACL 9:7c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$126 + RDB$ACL 9:7d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$127 + RDB$ACL 9:7e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$128 + RDB$ACL 9:7f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$129 + RDB$ACL 9:80 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$13 + RDB$ACL 9:c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$130 + RDB$ACL 9:81 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$131 + RDB$ACL 9:82 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$132 + RDB$ACL 9:83 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$133 + RDB$ACL 9:84 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$134 + RDB$ACL 9:85 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$135 + RDB$ACL 9:86 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$136 + RDB$ACL 9:87 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$137 + RDB$ACL 9:5a0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$138 + RDB$ACL 9:5a1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$139 + RDB$ACL 9:5a2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$14 + RDB$ACL 9:d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$140 + RDB$ACL 9:5a3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$141 + RDB$ACL 9:5a4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$142 + RDB$ACL 9:5a5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$143 + RDB$ACL 9:5a6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$144 + RDB$ACL 9:5a7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$145 + RDB$ACL 9:5a8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$146 + RDB$ACL 9:5a9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$147 + RDB$ACL 9:5aa + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$148 + RDB$ACL 9:5ab + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$149 + RDB$ACL 9:5ac + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$15 + RDB$ACL 9:e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$150 + RDB$ACL 9:5ad + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$151 + RDB$ACL 9:5ae + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$152 + RDB$ACL 9:5af + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$153 + RDB$ACL 9:5b0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$154 + RDB$ACL 9:5b1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$155 + RDB$ACL 9:5b2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$156 + RDB$ACL 9:5b3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$157 + RDB$ACL 9:5b4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$158 + RDB$ACL 9:5b5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$159 + RDB$ACL 9:5b6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$16 + RDB$ACL 9:f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$160 + RDB$ACL 9:5b7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$161 + RDB$ACL 9:5b8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$162 + RDB$ACL 9:5b9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$163 + RDB$ACL 9:5ba + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$164 + RDB$ACL 9:5bb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$165 + RDB$ACL 9:5bc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$166 + RDB$ACL 9:5bd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$167 + RDB$ACL 9:5be + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$168 + RDB$ACL 9:5bf + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$169 + RDB$ACL 9:5c0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$17 + RDB$ACL 9:10 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$170 + RDB$ACL 9:5c1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$171 + RDB$ACL 9:5c2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$172 + RDB$ACL 9:5c3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$173 + RDB$ACL 9:5c4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$174 + RDB$ACL 9:5c5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$175 + RDB$ACL 9:5c6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$176 + RDB$ACL 9:5c7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$177 + RDB$ACL 9:5c8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$178 + RDB$ACL 9:5c9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$179 + RDB$ACL 9:5ca + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$18 + RDB$ACL 9:11 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$180 + RDB$ACL 9:5cb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$181 + RDB$ACL 9:5cc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$182 + RDB$ACL 9:5cd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$183 + RDB$ACL 9:5ce + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$184 + RDB$ACL 9:5cf + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$185 + RDB$ACL 9:5d0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$186 + RDB$ACL 9:5d1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$187 + RDB$ACL 9:5d2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$188 + RDB$ACL 9:5d3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$189 + RDB$ACL 9:5d4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$19 + RDB$ACL 9:12 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$190 + RDB$ACL 9:5d5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$191 + RDB$ACL 9:5d6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$192 + RDB$ACL 9:5d7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$193 + RDB$ACL 9:5d8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$194 + RDB$ACL 9:5d9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$195 + RDB$ACL 9:5da + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$196 + RDB$ACL 9:5db + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$197 + RDB$ACL 9:5dc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$198 + RDB$ACL 9:5dd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$199 + RDB$ACL 9:5de + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$2 + RDB$ACL 9:1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$20 + RDB$ACL 9:13 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$200 + RDB$ACL 9:5df + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$201 + RDB$ACL 9:5e0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$202 + RDB$ACL 9:5e1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$203 + RDB$ACL 9:5e2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$204 + RDB$ACL 9:5e3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$205 + RDB$ACL 9:5e4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$206 + RDB$ACL 9:5e5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$207 + RDB$ACL 9:5e6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$208 + RDB$ACL 9:5e7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$209 + RDB$ACL 9:5e8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$21 + RDB$ACL 9:14 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$210 + RDB$ACL 9:5e9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$211 + RDB$ACL 9:5ea + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$212 + RDB$ACL 9:5eb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$213 + RDB$ACL 9:5ec + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$214 + RDB$ACL 9:5ed + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$215 + RDB$ACL 9:5ee + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$216 + RDB$ACL 9:5ef + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$217 + RDB$ACL 9:5f0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$218 + RDB$ACL 9:5f1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$219 + RDB$ACL 9:5f2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$22 + RDB$ACL 9:15 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$220 + RDB$ACL 9:5f3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$221 + RDB$ACL 9:5f4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$222 + RDB$ACL 9:5f5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$223 + RDB$ACL 9:5f6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$224 + RDB$ACL 9:5f7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$225 + RDB$ACL 9:5f8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$226 + RDB$ACL 9:5f9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$227 + RDB$ACL 9:5fa + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$228 + RDB$ACL 9:5fb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$229 + RDB$ACL 9:5fc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$23 + RDB$ACL 9:16 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$230 + RDB$ACL 9:5fd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$231 + RDB$ACL 9:5fe + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$232 + RDB$ACL 9:5ff + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$233 + RDB$ACL 9:600 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$234 + RDB$ACL 9:601 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$235 + RDB$ACL 9:602 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$236 + RDB$ACL 9:603 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$237 + RDB$ACL 9:604 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$238 + RDB$ACL 9:605 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$239 + RDB$ACL 9:606 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$24 + RDB$ACL 9:17 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$240 + RDB$ACL 9:607 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$241 + RDB$ACL 9:608 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$242 + RDB$ACL 9:609 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$243 + RDB$ACL 9:60a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$244 + RDB$ACL 9:60b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$245 + RDB$ACL 9:60c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$246 + RDB$ACL 9:60d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$247 + RDB$ACL 9:60e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$248 + RDB$ACL 9:60f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$249 + RDB$ACL 9:610 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$25 + RDB$ACL 9:18 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$250 + RDB$ACL 9:611 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$251 + RDB$ACL 9:612 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$252 + RDB$ACL 9:613 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$253 + RDB$ACL 9:614 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$254 + RDB$ACL 9:615 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$255 + RDB$ACL 9:616 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$256 + RDB$ACL 9:617 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$257 + RDB$ACL 9:618 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$258 + RDB$ACL 9:619 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$259 + RDB$ACL 9:61a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$26 + RDB$ACL 9:19 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$260 + RDB$ACL 9:61b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$261 + RDB$ACL 9:61c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$262 + RDB$ACL 9:61d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$263 + RDB$ACL 9:61e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$264 + RDB$ACL 9:61f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$265 + RDB$ACL 9:620 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$266 + RDB$ACL 9:621 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$267 + RDB$ACL 9:622 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$268 + RDB$ACL 9:623 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$269 + RDB$ACL 9:624 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$27 + RDB$ACL 9:1a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$270 + RDB$ACL 9:625 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$271 + RDB$ACL 9:626 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$272 + RDB$ACL 9:627 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$273 + RDB$ACL 9:960 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$274 + RDB$ACL 9:961 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$275 + RDB$ACL 9:962 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$276 + RDB$ACL 9:963 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$277 + RDB$ACL 9:964 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$278 + RDB$ACL 9:965 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$279 + RDB$ACL 9:966 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$28 + RDB$ACL 9:1b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$280 + RDB$ACL 9:967 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$281 + RDB$ACL 9:968 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$282 + RDB$ACL 9:969 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$283 + RDB$ACL 9:96a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$284 + RDB$ACL 9:96b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$285 + RDB$ACL 9:96c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$286 + RDB$ACL 9:96d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$287 + RDB$ACL 9:96e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$288 + RDB$ACL 9:96f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$289 + RDB$ACL 9:970 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$29 + RDB$ACL 9:1c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$290 + RDB$ACL 9:971 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$291 + RDB$ACL 9:972 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$292 + RDB$ACL 9:973 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$293 + RDB$ACL 9:974 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$294 + RDB$ACL 9:975 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$295 + RDB$ACL 9:976 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$296 + RDB$ACL 9:977 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$297 + RDB$ACL 9:978 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$298 + RDB$ACL 9:979 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$299 + RDB$ACL 9:97a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$3 + RDB$ACL 9:2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$30 + RDB$ACL 9:1d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$300 + RDB$ACL 9:97b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$301 + RDB$ACL 9:97c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$302 + RDB$ACL 9:97d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$303 + RDB$ACL 9:97e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$304 + RDB$ACL 9:97f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$305 + RDB$ACL 9:980 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$306 + RDB$ACL 9:981 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$307 + RDB$ACL 9:982 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$308 + RDB$ACL 9:983 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$309 + RDB$ACL 9:984 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$31 + RDB$ACL 9:1e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$310 + RDB$ACL 9:985 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$311 + RDB$ACL 9:986 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$312 + RDB$ACL 9:987 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$313 + RDB$ACL 9:988 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$314 + RDB$ACL 9:989 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$315 + RDB$ACL 9:98a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$316 + RDB$ACL 9:98b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$317 + RDB$ACL 9:98c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$318 + RDB$ACL 9:98d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$319 + RDB$ACL 9:98e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$32 + RDB$ACL 9:1f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$320 + RDB$ACL 9:98f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$321 + RDB$ACL 9:990 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$322 + RDB$ACL 9:991 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$323 + RDB$ACL 9:992 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$324 + RDB$ACL 9:993 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$325 + RDB$ACL 9:994 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$326 + RDB$ACL 9:995 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$327 + RDB$ACL 9:996 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$328 + RDB$ACL 9:997 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$329 + RDB$ACL 9:998 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$33 + RDB$ACL 9:20 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$330 + RDB$ACL 9:999 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$331 + RDB$ACL 9:99a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$332 + RDB$ACL 9:99b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$333 + RDB$ACL 9:99c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$334 + RDB$ACL 9:99d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$335 + RDB$ACL 9:99e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$336 + RDB$ACL 9:99f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$337 + RDB$ACL 9:9a0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$338 + RDB$ACL 9:9a1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$339 + RDB$ACL 9:9a2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$34 + RDB$ACL 9:21 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$340 + RDB$ACL 9:9a3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$341 + RDB$ACL 9:9a4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$342 + RDB$ACL 9:9a5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$343 + RDB$ACL 9:9a6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$344 + RDB$ACL 9:9a7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$345 + RDB$ACL 9:9a8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$346 + RDB$ACL 9:9a9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$347 + RDB$ACL 9:9aa + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$348 + RDB$ACL 9:9ab + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$349 + RDB$ACL 9:9ac + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$35 + RDB$ACL 9:22 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$350 + RDB$ACL 9:9ad + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$351 + RDB$ACL 9:9ae + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$352 + RDB$ACL 9:9af + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$353 + RDB$ACL 9:9b0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$354 + RDB$ACL 9:9b1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$355 + RDB$ACL 9:9b2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$356 + RDB$ACL 9:9b3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$357 + RDB$ACL 9:9b4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$358 + RDB$ACL 9:9b5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$359 + RDB$ACL 9:9b6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$36 + RDB$ACL 9:23 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$360 + RDB$ACL 9:9b7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$361 + RDB$ACL 9:9b8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$362 + RDB$ACL 9:9b9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$363 + RDB$ACL 9:9ba + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$364 + RDB$ACL 9:9bb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$365 + RDB$ACL 9:9bc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$366 + RDB$ACL 9:9bd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$367 + RDB$ACL 9:9be + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$368 + RDB$ACL 9:9bf + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$369 + RDB$ACL 9:9c0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$37 + RDB$ACL 9:24 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$370 + RDB$ACL 9:9c1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$371 + RDB$ACL 9:9c2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$372 + RDB$ACL 9:9c3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$373 + RDB$ACL 9:9c4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$374 + RDB$ACL 9:9c5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$375 + RDB$ACL 9:9c6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$376 + RDB$ACL 9:9c7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$377 + RDB$ACL 9:9c8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$378 + RDB$ACL 9:9c9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$379 + RDB$ACL 9:9ca + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$38 + RDB$ACL 9:25 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$380 + RDB$ACL 9:9cb + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$381 + RDB$ACL 9:9cc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$382 + RDB$ACL 9:9cd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$383 + RDB$ACL 9:9ce + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$384 + RDB$ACL 9:9cf + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$385 + RDB$ACL 9:9d0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$386 + RDB$ACL 9:9d1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (execute) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$387 + RDB$ACL 9:9de + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$388 + RDB$ACL 9:9df + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$389 + RDB$ACL 9:9e1 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$39 + RDB$ACL 9:26 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$390 + RDB$ACL 9:9e3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$391 + RDB$ACL 9:9e5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$392 + RDB$ACL 9:9e7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$393 + RDB$ACL 9:d20 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$394 + RDB$ACL 9:d22 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$395 + RDB$ACL 9:d24 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$396 + RDB$ACL 9:d26 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$397 + RDB$ACL 9:d28 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$398 + RDB$ACL 9:d2a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$399 + RDB$ACL 9:d57 + ACL version 1 + person: SYSDBA, privileges: (alter, control, drop, insert, update, delete, select, references) + (null)3, privileges: (insert, update, delete, select, references) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$4 + RDB$ACL 9:3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$40 + RDB$ACL 9:27 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$400 + RDB$ACL 9:d2e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$401 + RDB$ACL 9:d30 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$402 + RDB$ACL 9:d32 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$403 + RDB$ACL 9:d34 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$404 + RDB$ACL 9:d36 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$405 + RDB$ACL 9:d38 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$406 + RDB$ACL 9:d3a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$407 + RDB$ACL 9:d3c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$408 + RDB$ACL 9:d3e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$409 + RDB$ACL 9:d40 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$41 + RDB$ACL 9:28 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$410 + RDB$ACL 9:d42 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$411 + RDB$ACL 9:d44 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$412 + RDB$ACL 9:d46 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$413 + RDB$ACL 9:d48 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$414 + RDB$ACL 9:d4a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$415 + RDB$ACL 9:d4c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$416 + RDB$ACL 9:d4e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$417 + RDB$ACL 9:d50 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$418 + RDB$ACL 9:d52 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$419 + RDB$ACL 9:d54 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$42 + RDB$ACL 9:29 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$420 + RDB$ACL 9:d84 + ACL version 1 + person: SYSDBA, privileges: (alter, control, drop, insert, update, delete, select, references) + (null)4, privileges: (insert, update, delete, select, references) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$421 + RDB$ACL 9:d58 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$422 + RDB$ACL 9:d5a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$423 + RDB$ACL 9:d5c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$424 + RDB$ACL 9:d5e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$425 + RDB$ACL 9:d60 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$426 + RDB$ACL 9:d62 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$427 + RDB$ACL 9:d64 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$428 + RDB$ACL 9:d66 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$429 + RDB$ACL 9:d68 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$43 + RDB$ACL 9:2a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$430 + RDB$ACL 9:d6a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$431 + RDB$ACL 9:d6c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$432 + RDB$ACL 9:d6e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$433 + RDB$ACL 9:d70 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$434 + RDB$ACL 9:d72 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$435 + RDB$ACL 9:d2d + ACL version 1 + person: SYSDBA, privileges: (alter, control, drop, insert, update, delete, select, references) + (null)22, privileges: (insert, update, delete, select, references) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$436 + RDB$ACL 9:d76 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$437 + RDB$ACL 9:d78 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$438 + RDB$ACL 9:d7a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$439 + RDB$ACL 9:d7c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$44 + RDB$ACL 9:2b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$440 + RDB$ACL 9:d7e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$441 + RDB$ACL 9:d80 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$442 + RDB$ACL 9:d82 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$45 + RDB$ACL 9:2c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$46 + RDB$ACL 9:2d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$47 + RDB$ACL 9:2e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$48 + RDB$ACL 9:2f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$49 + RDB$ACL 9:30 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$5 + RDB$ACL 9:4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$50 + RDB$ACL 9:31 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$51 + RDB$ACL 9:32 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$52 + RDB$ACL 9:33 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$53 + RDB$ACL 9:34 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$54 + RDB$ACL 9:35 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$55 + RDB$ACL 9:36 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$56 + RDB$ACL 9:37 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$57 + RDB$ACL 9:38 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$58 + RDB$ACL 9:39 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$59 + RDB$ACL 9:3a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$6 + RDB$ACL 9:5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$60 + RDB$ACL 9:3b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$61 + RDB$ACL 9:3c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$62 + RDB$ACL 9:3d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$63 + RDB$ACL 9:3e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$64 + RDB$ACL 9:3f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$65 + RDB$ACL 9:40 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$66 + RDB$ACL 9:41 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$67 + RDB$ACL 9:42 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$68 + RDB$ACL 9:43 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$69 + RDB$ACL 9:44 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$7 + RDB$ACL 9:6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$70 + RDB$ACL 9:45 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$71 + RDB$ACL 9:46 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$72 + RDB$ACL 9:47 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$73 + RDB$ACL 9:48 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$74 + RDB$ACL 9:49 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$75 + RDB$ACL 9:4a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$76 + RDB$ACL 9:4b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$77 + RDB$ACL 9:4c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$78 + RDB$ACL 9:4d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$79 + RDB$ACL 9:4e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$8 + RDB$ACL 9:7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$80 + RDB$ACL 9:4f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$81 + RDB$ACL 9:50 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$82 + RDB$ACL 9:51 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$83 + RDB$ACL 9:52 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$84 + RDB$ACL 9:53 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$85 + RDB$ACL 9:54 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$86 + RDB$ACL 9:55 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$87 + RDB$ACL 9:56 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$88 + RDB$ACL 9:57 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$89 + RDB$ACL 9:58 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$9 + RDB$ACL 9:8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$90 + RDB$ACL 9:59 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$91 + RDB$ACL 9:5a + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$92 + RDB$ACL 9:5b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$93 + RDB$ACL 9:5c + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$94 + RDB$ACL 9:5d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$95 + RDB$ACL 9:5e + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$96 + RDB$ACL 9:5f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$97 + RDB$ACL 9:60 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$98 + RDB$ACL 9:61 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$99 + RDB$ACL 9:62 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, usage) + all users: (*.*), privileges: (usage) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$CHARSETS + RDB$ACL 9:9db + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$COLLATIONS + RDB$ACL 9:9dc + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT1 + RDB$ACL 9:9e0 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT10 + RDB$ACL 9:d29 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT11 + RDB$ACL 9:d2b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT12 + RDB$ACL 9:d2c + ACL version 1 + person: SYSDBA, privileges: (alter, control, drop, insert, update, delete, select, references) + (null)3, privileges: (insert, update, delete, select, references) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT13 + RDB$ACL 9:d2f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT14 + RDB$ACL 9:d31 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT15 + RDB$ACL 9:d33 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT16 + RDB$ACL 9:d35 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT17 + RDB$ACL 9:d37 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT18 + RDB$ACL 9:d39 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT19 + RDB$ACL 9:d3b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT2 + RDB$ACL 9:9e2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT20 + RDB$ACL 9:d3d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT21 + RDB$ACL 9:d3f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT22 + RDB$ACL 9:d41 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT23 + RDB$ACL 9:d43 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT24 + RDB$ACL 9:d45 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT25 + RDB$ACL 9:d47 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT26 + RDB$ACL 9:d49 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT27 + RDB$ACL 9:d4b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT28 + RDB$ACL 9:d4d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT29 + RDB$ACL 9:d4f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT3 + RDB$ACL 9:9e4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT30 + RDB$ACL 9:d51 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT31 + RDB$ACL 9:d53 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT32 + RDB$ACL 9:d55 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT33 + RDB$ACL 9:d56 + ACL version 1 + person: SYSDBA, privileges: (alter, control, drop, insert, update, delete, select, references) + (null)4, privileges: (insert, update, delete, select, references) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT34 + RDB$ACL 9:d59 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT35 + RDB$ACL 9:d5b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT36 + RDB$ACL 9:d5d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT37 + RDB$ACL 9:d5f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT38 + RDB$ACL 9:d61 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT39 + RDB$ACL 9:d63 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT4 + RDB$ACL 9:9e6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT40 + RDB$ACL 9:d65 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT41 + RDB$ACL 9:d67 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT42 + RDB$ACL 9:d69 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT43 + RDB$ACL 9:d6b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT44 + RDB$ACL 9:d6d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT45 + RDB$ACL 9:d6f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT46 + RDB$ACL 9:d71 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT47 + RDB$ACL 9:d73 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT48 + RDB$ACL 9:d74 + ACL version 1 + person: SYSDBA, privileges: (alter, control, drop, insert, update, delete, select, references) + (null)22, privileges: (insert, update, delete, select, references) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT49 + RDB$ACL 9:d77 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT5 + RDB$ACL 9:9e8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT50 + RDB$ACL 9:d79 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT51 + RDB$ACL 9:d7b + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT52 + RDB$ACL 9:d7d + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT53 + RDB$ACL 9:d7f + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT54 + RDB$ACL 9:d81 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT55 + RDB$ACL 9:d83 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT6 + RDB$ACL 9:d21 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT7 + RDB$ACL 9:d23 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT8 + RDB$ACL 9:d25 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DEFAULT9 + RDB$ACL 9:d27 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop, select, insert, update, delete) + all users: (*.*), privileges: (select) + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$DOMAINS + RDB$ACL 9:9d8 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$EXCEPTIONS + RDB$ACL 9:9d9 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$FILTERS + RDB$ACL 9:9dd + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$FUNCTIONS + RDB$ACL 9:9d5 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$GENERATORS + RDB$ACL 9:9d7 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$PACKAGES + RDB$ACL 9:9d6 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$PROCEDURES + RDB$ACL 9:9d4 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$ROLES + RDB$ACL 9:9da + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$TABLES + RDB$ACL 9:9d2 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + RDB$SECURITY_CLASS SQL$VIEWS + RDB$ACL 9:9d3 + ACL version 1 + person: SYSDBA, privileges: (control, alter, drop) + all users: (*.*), privileges: () + + RDB$DESCRIPTION + + + Records affected: 509 +""" + +@pytest.mark.version('>=5.0') +def test_3(act_3: Action): + act_3.expected_stdout = expected_stdout_3 + act_3.execute() + assert act_3.clean_stdout == act_3.clean_expected_stdout diff --git a/tests/functional/basic/db/test_27.py b/tests/functional/basic/db/test_27.py index 81d24ed5..d6af6646 100644 --- a/tests/functional/basic/db/test_27.py +++ b/tests/functional/basic/db/test_27.py @@ -24,17 +24,17 @@ test_script_1 = """ set list on; set count on; select * from rdb$transactions order by rdb$transaction_id; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/db/test_28.py b/tests/functional/basic/db/test_28.py index 6a59d44d..5b7b128d 100644 --- a/tests/functional/basic/db/test_28.py +++ b/tests/functional/basic/db/test_28.py @@ -5,7 +5,7 @@ # decription: Check for correct content of RDB$TRIGGER_MESSAGES in empty database. # tracker_id: # min_versions: [] -# versions: 3.0 +# versions: 3.0, 4.1 # qmid: functional.basic.db.db_28 import pytest @@ -25,7 +25,7 @@ test_script_1 = """ set count on; set blob all; select * from rdb$trigger_messages order by rdb$trigger_name, rdb$message_number; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -173,11 +173,169 @@ expected_stdout_1 = """ Records affected: 35 - """ +""" -@pytest.mark.version('>=3.0') +@pytest.mark.version('>=3.0,<4.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout + +# version: 4.1 +# resources: None + +substitutions_2 = [('RDB\\$TRIGGER_NAME[\\s]+RDB\\$TRIGGER.*', 'RDB\\$TRIGGER_NAME RDB\\$TRIGGER')] + +init_script_2 = """""" + +db_2 = db_factory(sql_dialect=3, init=init_script_2) + +test_script_2 = """ + set list on; + set count on; + set blob all; + select * from rdb$trigger_messages order by rdb$trigger_name, rdb$message_number; +""" + +act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) + +expected_stdout_2 = """ +RDB$TRIGGER_NAME RDB$TRIGGER_1 +RDB$MESSAGE_NUMBER 0 +RDB$MESSAGE existing_priv_mod + +RDB$TRIGGER_NAME RDB$TRIGGER_10 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE primary_key_ref + +RDB$TRIGGER_NAME RDB$TRIGGER_10 +RDB$MESSAGE_NUMBER 2 +RDB$MESSAGE primary_key_notnull + +RDB$TRIGGER_NAME RDB$TRIGGER_12 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE ref_cnstrnt_notfound + +RDB$TRIGGER_NAME RDB$TRIGGER_12 +RDB$MESSAGE_NUMBER 2 +RDB$MESSAGE foreign_key_notfound + +RDB$TRIGGER_NAME RDB$TRIGGER_13 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE ref_cnstrnt_update + +RDB$TRIGGER_NAME RDB$TRIGGER_14 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE check_cnstrnt_update + +RDB$TRIGGER_NAME RDB$TRIGGER_15 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE check_cnstrnt_del + +RDB$TRIGGER_NAME RDB$TRIGGER_17 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE integ_index_seg_del + +RDB$TRIGGER_NAME RDB$TRIGGER_18 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE integ_index_seg_mod + +RDB$TRIGGER_NAME RDB$TRIGGER_19 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE integ_index_del + +RDB$TRIGGER_NAME RDB$TRIGGER_2 +RDB$MESSAGE_NUMBER 0 +RDB$MESSAGE systrig_update + +RDB$TRIGGER_NAME RDB$TRIGGER_20 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE integ_index_mod + +RDB$TRIGGER_NAME RDB$TRIGGER_20 +RDB$MESSAGE_NUMBER 2 +RDB$MESSAGE integ_index_deactivate + +RDB$TRIGGER_NAME RDB$TRIGGER_20 +RDB$MESSAGE_NUMBER 3 +RDB$MESSAGE integ_deactivate_primary + +RDB$TRIGGER_NAME RDB$TRIGGER_21 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE check_trig_del + +RDB$TRIGGER_NAME RDB$TRIGGER_22 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE check_trig_update + +RDB$TRIGGER_NAME RDB$TRIGGER_23 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE cnstrnt_fld_del + +RDB$TRIGGER_NAME RDB$TRIGGER_24 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE cnstrnt_fld_rename + +RDB$TRIGGER_NAME RDB$TRIGGER_24 +RDB$MESSAGE_NUMBER 2 +RDB$MESSAGE integ_index_seg_mod + +RDB$TRIGGER_NAME RDB$TRIGGER_25 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE rel_cnstrnt_update + +RDB$TRIGGER_NAME RDB$TRIGGER_26 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE constaint_on_view + +RDB$TRIGGER_NAME RDB$TRIGGER_26 +RDB$MESSAGE_NUMBER 2 +RDB$MESSAGE invld_cnstrnt_type + +RDB$TRIGGER_NAME RDB$TRIGGER_26 +RDB$MESSAGE_NUMBER 3 +RDB$MESSAGE primary_key_exists + +RDB$TRIGGER_NAME RDB$TRIGGER_3 +RDB$MESSAGE_NUMBER 0 +RDB$MESSAGE systrig_update + +RDB$TRIGGER_NAME RDB$TRIGGER_36 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE integ_index_seg_mod + +RDB$TRIGGER_NAME RDB$TRIGGER_9 +RDB$MESSAGE_NUMBER 0 +RDB$MESSAGE grant_obj_notfound + +RDB$TRIGGER_NAME RDB$TRIGGER_9 +RDB$MESSAGE_NUMBER 1 +RDB$MESSAGE grant_fld_notfound + +RDB$TRIGGER_NAME RDB$TRIGGER_9 +RDB$MESSAGE_NUMBER 2 +RDB$MESSAGE grant_nopriv + +RDB$TRIGGER_NAME RDB$TRIGGER_9 +RDB$MESSAGE_NUMBER 3 +RDB$MESSAGE nonsql_security_rel + +RDB$TRIGGER_NAME RDB$TRIGGER_9 +RDB$MESSAGE_NUMBER 4 +RDB$MESSAGE nonsql_security_fld + +RDB$TRIGGER_NAME RDB$TRIGGER_9 +RDB$MESSAGE_NUMBER 5 +RDB$MESSAGE grant_nopriv_on_base + + +Records affected: 32 + +""" + +@pytest.mark.version('>=4.1') +def test_2(act_2: Action): + act_2.expected_stdout = expected_stdout_2 + act_2.execute() + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/basic/db/test_29.py b/tests/functional/basic/db/test_29.py index b5186d7f..d2159ad3 100644 --- a/tests/functional/basic/db/test_29.py +++ b/tests/functional/basic/db/test_29.py @@ -11,7 +11,7 @@ # # tracker_id: # min_versions: ['2.5.7'] -# versions: 3.0, 4.0 +# versions: 3.0, 4.0, 4.1 # qmid: functional.basic.db.db_29 import pytest @@ -31,7 +31,7 @@ test_script_1 = """ set blob all; set count on; select * from rdb$triggers rt order by rt.rdb$trigger_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -2394,13 +2394,13 @@ expected_stdout_1 = """ Records affected: 29 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -2416,7 +2416,7 @@ test_script_2 = """ set blob all; set count on; select * from rdb$triggers rt order by rt.rdb$trigger_name; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -4483,11 +4483,1934 @@ expected_stdout_2 = """ Records affected: 29 - """ +""" -@pytest.mark.version('>=4.0') +@pytest.mark.version('>=4.0,<4.1') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout + +# version: 4.1 +# resources: None + +substitutions_3 = [('RDB\\$TRIGGER_BLR.*', ''), ('RDB\\$TRIGGER_NAME[\\s]+RDB\\$TRIGGER.*', 'RDB\\$TRIGGER_NAME RDB\\$TRIGGER')] + +init_script_3 = """""" + +db_3 = db_factory(sql_dialect=3, init=init_script_3) + +test_script_3 = """ + set list on; + set blob all; + set count on; + select * from rdb$triggers rt order by rt.rdb$trigger_name; +""" + +act_3 = isql_act('db_3', test_script_3, substitutions=substitutions_3) + +expected_stdout_3 = """ + +RDB$TRIGGER_NAME RDB$TRIGGER_1 +RDB$RELATION_NAME RDB$USER_PRIVILEGES +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 3 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:0 + blr_version5, + blr_leave, 0, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_10 +RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 5 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:7 + blr_version5, + blr_begin, + blr_label, 0, + blr_begin, + blr_begin, + blr_if, + blr_or, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text2, 0,0, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text2, 0,0, 6,0, 'U','N','I','Q','U','E', + blr_begin, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','R','E','F','_','C','O','N','S','T','R','A','I','N','T','S', 2, + blr_boolean, + blr_eql, + blr_field, 2, 17, 'R','D','B','$','C','O','N','S','T','_','N','A','M','E','_','U','Q', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_begin, + blr_begin, + blr_leave, 1, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text2, 0,0, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_begin, + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','R','E','F','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_erase, 3, + blr_end, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text2, 0,0, 8,0, 'N','O','T',32,'N','U','L','L', + blr_begin, + blr_begin, + blr_label, 1, + blr_for, + blr_rse, 5, + blr_relation2, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', + 9, 'C','1',32,'C','H','K','C','O','N', 4, + blr_relation2, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', + 6, 'C','1',32,'R','F','L', 5, + blr_relation2, 10, 'R','D','B','$','F','I','E','L','D','S', + 6, 'C','1',32,'F','L','D', 6, + blr_relation2, 11, 'R','D','B','$','I','N','D','I','C','E','S', + 6, 'C','1',32,'I','N','D', 7, + blr_relation2, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', + 9, 'C','1',32,'I','D','X','S','E','G', 8, + blr_boolean, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_eql, + blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 4, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_eql, + blr_field, 5, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 8, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_eql, + blr_field, 6, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 5, 16, 'R','D','B','$','F','I','E','L','D','_','S','O','U','R','C','E', + blr_or, + blr_missing, + blr_field, 6, 13, 'R','D','B','$','N','U','L','L','_','F','L','A','G', + blr_eql, + blr_field, 6, 13, 'R','D','B','$','N','U','L','L','_','F','L','A','G', + blr_literal, blr_long, 0, 0,0,0,0, + blr_eql, + blr_field, 7, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 7, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 8, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_begin, + blr_begin, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 9, + blr_boolean, + blr_and, + blr_eql, + blr_field, 9, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_derived_expr, 1, 8, + blr_field, 8, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_eql, + blr_field, 9, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text2, 0,0, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_end, + blr_begin, + blr_begin, + blr_leave, 2, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_11 +RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 6 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:8 + blr_version5, + blr_begin, + blr_if, + blr_or, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_or, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 6,0, 'U','N','I','Q','U','E', + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 3, + blr_boolean, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 3, + blr_for, + blr_rse, 1, + blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', 4, + blr_boolean, + blr_eql, + blr_field, 4, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 4, + blr_end, + blr_end, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 8,0, 'N','O','T',32,'N','U','L','L', + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 5, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 6, + blr_boolean, + blr_and, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 5, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 6, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 6, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 5, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 5, + blr_modify, 6, 7, + blr_begin, + blr_assignment, + blr_literal, blr_long, 0, 0,0,0,0, + blr_field, 7, 13, 'R','D','B','$','N','U','L','L','_','F','L','A','G', + blr_end, + blr_end, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 8, + blr_boolean, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 8, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 8, + blr_for, + blr_rse, 1, + blr_relation, 12, 'R','D','B','$','T','R','I','G','G','E','R','S', 9, + blr_boolean, + blr_and, + blr_eql, + blr_field, 9, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 8, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_eql, + blr_field, 9, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 9, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_12 +RDB$RELATION_NAME RDB$REF_CONSTRAINTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 1 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:9 + blr_version5, + blr_begin, + blr_if, + blr_not, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_end, + blr_leave, 1, + blr_end, + blr_if, + blr_not, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','C','O','N','S','T','_','N','A','M','E','_','U','Q', + blr_or, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 6,0, 'U','N','I','Q','U','E', + blr_end, + blr_leave, 2, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_13 +RDB$RELATION_NAME RDB$REF_CONSTRAINTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 3 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:a + blr_version5, + blr_begin, + blr_leave, 1, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_14 +RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 3 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:b + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_and, + blr_not, + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 8,0, 'N','O','T',32,'N','U','L','L', + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_15 +RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 5 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:c + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_16 +RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 6 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:d + blr_version5, + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 4, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 8,0, 'N','O','T',32,'N','U','L','L', + blr_eql, + blr_field, 3, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_end, + blr_begin, + blr_modify, 3, 5, + blr_begin, + blr_assignment, + blr_literal, blr_long, 0, 0,0,0,0, + blr_field, 5, 13, 'R','D','B','$','N','U','L','L','_','F','L','A','G', + blr_end, + blr_end, + blr_for, + blr_rse, 2, + blr_relation, 12, 'R','D','B','$','T','R','I','G','G','E','R','S', 6, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 7, + blr_boolean, + blr_and, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_and, + blr_eql, + blr_field, 6, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 7, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 6, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 6, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_17 +RDB$RELATION_NAME RDB$INDEX_SEGMENTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 5 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:e + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_18 +RDB$RELATION_NAME RDB$INDEX_SEGMENTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 3 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:f + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_if, + blr_not, + blr_and, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_eql, + blr_field, 0, 18, 'R','D','B','$','F','I','E','L','D','_','P','O','S','I','T','I','O','N', + blr_field, 1, 18, 'R','D','B','$','F','I','E','L','D','_','P','O','S','I','T','I','O','N', + blr_leave, 1, + blr_end, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_19 +RDB$RELATION_NAME RDB$INDICES +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 5 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:10 + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_2 +RDB$RELATION_NAME RDB$TRIGGERS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 3 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:3 + blr_version5, + blr_if, + blr_eql, + blr_field, 0, 15, 'R','D','B','$','S','Y','S','T','E','M','_','F','L','A','G', + blr_literal, blr_short, 0, 1,0, + blr_leave, 0, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_20 +RDB$RELATION_NAME RDB$INDICES +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 3 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:11 + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_not, + blr_and, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 0, 12, 'R','D','B','$','I','N','D','E','X','_','I','D', + blr_field, 1, 12, 'R','D','B','$','I','N','D','E','X','_','I','D', + blr_and, + blr_eql, + blr_field, 0, 17, 'R','D','B','$','S','E','G','M','E','N','T','_','C','O','U','N','T', + blr_field, 1, 17, 'R','D','B','$','S','E','G','M','E','N','T','_','C','O','U','N','T', + blr_eql, + blr_field, 0, 15, 'R','D','B','$','F','O','R','E','I','G','N','_','K','E','Y', + blr_field, 1, 15, 'R','D','B','$','F','O','R','E','I','G','N','_','K','E','Y', + blr_leave, 1, + blr_end, + blr_end, + blr_end, + blr_for, + blr_rse, 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 5, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 6, + blr_boolean, + blr_and, + blr_eql, + blr_field, 4, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 6, 15, 'R','D','B','$','F','O','R','E','I','G','N','_','K','E','Y', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 1, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_literal, blr_long, 0, 1,0,0,0, + blr_or, + blr_eql, + blr_field, 0, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_missing, + blr_field, 0, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_end, + blr_begin, + blr_leave, 2, + blr_end, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 7, + blr_boolean, + blr_and, + blr_eql, + blr_field, 7, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_or, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_or, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 6,0, 'U','N','I','Q','U','E', + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_end, + blr_begin, + blr_if, + blr_and, + blr_eql, + blr_field, 1, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_literal, blr_long, 0, 1,0,0,0, + blr_or, + blr_eql, + blr_field, 0, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_missing, + blr_field, 0, 18, 'R','D','B','$','I','N','D','E','X','_','I','N','A','C','T','I','V','E', + blr_begin, + blr_if, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_leave, 2, + blr_leave, 3, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_21 +RDB$RELATION_NAME RDB$TRIGGERS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 5 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:12 + blr_version5, + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_end, + blr_begin, + blr_leave, 1, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_22 +RDB$RELATION_NAME RDB$TRIGGERS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 3 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:3c0 + blr_version5, + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_end, + blr_begin, + blr_if, + blr_not, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_and, + blr_equiv, + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 1, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_equiv, + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_equiv, + blr_field, 0, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','S','E','Q','U','E','N','C','E', + blr_field, 1, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','S','E','Q','U','E','N','C','E', + blr_equiv, + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','T','Y','P','E', + blr_field, 1, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','T','Y','P','E', + blr_equiv, + blr_field, 0, 15, 'R','D','B','$','T','R','I','G','G','E','R','_','B','L','R', + blr_field, 1, 15, 'R','D','B','$','T','R','I','G','G','E','R','_','B','L','R', + blr_equiv, + blr_field, 0, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','I','N','A','C','T','I','V','E', + blr_field, 1, 20, 'R','D','B','$','T','R','I','G','G','E','R','_','I','N','A','C','T','I','V','E', + blr_equiv, + blr_field, 0, 15, 'R','D','B','$','S','Y','S','T','E','M','_','F','L','A','G', + blr_field, 1, 15, 'R','D','B','$','S','Y','S','T','E','M','_','F','L','A','G', + blr_equiv, + blr_field, 0, 9, 'R','D','B','$','F','L','A','G','S', + blr_field, 1, 9, 'R','D','B','$','F','L','A','G','S', + blr_equiv, + blr_field, 0, 14, 'R','D','B','$','D','E','B','U','G','_','I','N','F','O', + blr_field, 1, 14, 'R','D','B','$','D','E','B','U','G','_','I','N','F','O', + blr_begin, + blr_leave, 1, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_23 +RDB$RELATION_NAME RDB$RELATION_FIELDS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 5 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:3c1 + blr_version5, + blr_begin, + blr_for, + blr_rse, 3, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', 5, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_eql, + blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', 6, + blr_boolean, + blr_and, + blr_eql, + blr_field, 6, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_neq, + blr_field, 6, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_erase, 4, + blr_end, + blr_for, + blr_rse, 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 7, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 8, + blr_relation, 16, 'R','D','B','$','D','E','P','E','N','D','E','N','C','I','E','S', 9, + blr_boolean, + blr_and, + blr_and, + blr_eql, + blr_field, 7, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_and, + blr_eql, + blr_field, 8, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 9, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 9, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 2,0,0,0, + blr_and, + blr_eql, + blr_field, 9, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O','N','_','T','Y','P','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_and, + blr_eql, + blr_field, 9, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 9, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_eql, + blr_field, 8, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 7, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 16, 'R','D','B','$','D','E','P','E','N','D','E','N','C','I','E','S', 10, + blr_boolean, + blr_and, + blr_eql, + blr_field, 10, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_','N','A','M','E', + blr_field, 8, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 10, 18, 'R','D','B','$','D','E','P','E','N','D','E','N','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 2,0,0,0, + blr_and, + blr_eql, + blr_field, 10, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O','N','_','T','Y','P','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_and, + blr_eql, + blr_field, 10, 20, 'R','D','B','$','D','E','P','E','N','D','E','D','_','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_neq, + blr_field, 10, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_erase, 7, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_24 +RDB$RELATION_NAME RDB$RELATION_FIELDS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 3 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:3c2 + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 3, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', 5, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_eql, + blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_neq, + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_leave, 1, + blr_end, + blr_if, + blr_not, + blr_and, + blr_eql, + blr_field, 0, 16, 'R','D','B','$','F','I','E','L','D','_','S','O','U','R','C','E', + blr_field, 1, 16, 'R','D','B','$','F','I','E','L','D','_','S','O','U','R','C','E', + blr_eql, + blr_field, 0, 16, 'R','D','B','$','C','O','L','L','A','T','I','O','N','_','I','D', + blr_field, 1, 16, 'R','D','B','$','C','O','L','L','A','T','I','O','N','_','I','D', + blr_leave, 2, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_25 +RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 3 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:6 + blr_version5, + blr_begin, + blr_leave, 1, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_26 +RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 1 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:5 + blr_version5, + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 13, 'R','D','B','$','R','E','L','A','T','I','O','N','S', 3, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_not, + blr_missing, + blr_field, 3, 15, 'R','D','B','$','V','I','E','W','_','S','O','U','R','C','E', + blr_end, + blr_leave, 1, + blr_end, + blr_if, + blr_not, + blr_or, + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 6,0, 'U','N','I','Q','U','E', + blr_or, + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_or, + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_or, + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 8,0, 'N','O','T',32,'N','U','L','L', + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 5,0, 'C','H','E','C','K', + blr_leave, 2, + blr_end, + blr_if, + blr_eql, + blr_field, 1, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_begin, + blr_if, + blr_any, + blr_rse, 1, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'P','R','I','M','A','R','Y',32,'K','E','Y', + blr_eql, + blr_field, 4, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_leave, 3, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_27 +RDB$RELATION_NAME RDB$RELATION_FIELDS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 6 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:3c3 + blr_version5, + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 3, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 4, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 8,0, 'N','O','T',32,'N','U','L','L', + blr_end, + blr_begin, + blr_erase, 4, + blr_erase, 3, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_3 +RDB$RELATION_NAME RDB$TRIGGERS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 5 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:4 + blr_version5, + blr_if, + blr_eql, + blr_field, 0, 15, 'R','D','B','$','S','Y','S','T','E','M','_','F','L','A','G', + blr_literal, blr_short, 0, 1,0, + blr_leave, 0, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_34 +RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 6 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:3c4 + blr_version5, + blr_begin, + blr_if, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 21, 'R','D','B','$','C','H','E','C','K','_','C','O','N','S','T','R','A','I','N','T','S', 3, + blr_boolean, + blr_eql, + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 3, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 3, + blr_for, + blr_rse, 1, + blr_relation, 12, 'R','D','B','$','T','R','I','G','G','E','R','S', 4, + blr_boolean, + blr_eql, + blr_field, 4, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 3, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 4, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 2 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_35 +RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 6 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:3c5 + blr_version5, + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 12, 'R','D','B','$','T','R','I','G','G','E','R','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_boolean, + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_field, 0, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 19, 'R','D','B','$','C','O','N','S','T','R','A','I','N','T','_','T','Y','P','E', + blr_literal, blr_text, 11,0, 'F','O','R','E','I','G','N',32,'K','E','Y', + blr_eql, + blr_field, 3, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_field, 0, 16, 'R','D','B','$','T','R','I','G','G','E','R','_','N','A','M','E', + blr_end, + blr_begin, + blr_erase, 3, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 2 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_36 +RDB$RELATION_NAME RDB$FIELDS +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 3 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:3c6 + blr_version5, + blr_begin, + blr_if, + blr_not, + blr_and, + blr_eql, + blr_field, 0, 16, 'R','D','B','$','F','I','E','L','D','_','L','E','N','G','T','H', + blr_field, 1, 16, 'R','D','B','$','F','I','E','L','D','_','L','E','N','G','T','H', + blr_and, + blr_eql, + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','T','Y','P','E', + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','T','Y','P','E', + blr_and, + blr_eql, + blr_field, 0, 16, 'R','D','B','$','C','O','L','L','A','T','I','O','N','_','I','D', + blr_field, 1, 16, 'R','D','B','$','C','O','L','L','A','T','I','O','N','_','I','D', + blr_eql, + blr_field, 0, 20, 'R','D','B','$','C','H','A','R','A','C','T','E','R','_','S','E','T','_','I','D', + blr_field, 1, 20, 'R','D','B','$','C','H','A','R','A','C','T','E','R','_','S','E','T','_','I','D', + blr_if, + blr_any, + blr_rse, 4, + blr_relation, 11, 'R','D','B','$','I','N','D','I','C','E','S', 3, + blr_relation, 24, 'R','D','B','$','R','E','L','A','T','I','O','N','_','C','O','N','S','T','R','A','I','N','T','S', 4, + blr_relation, 18, 'R','D','B','$','I','N','D','E','X','_','S','E','G','M','E','N','T','S', 5, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 6, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 6, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 3, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 4, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_field, 5, 14, 'R','D','B','$','I','N','D','E','X','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 5, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 6, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_eql, + blr_field, 6, 16, 'R','D','B','$','F','I','E','L','D','_','S','O','U','R','C','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_leave, 1, + blr_end, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_8 +RDB$RELATION_NAME RDB$USER_PRIVILEGES +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 5 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:1 + blr_version5, + blr_if, + blr_not, + blr_missing, + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_for, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 3, + blr_boolean, + blr_and, + blr_eql, + blr_field, 3, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 0, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 3, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 0, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_starting, + blr_field, 3, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_text, 9,0, 'S','Q','L','$','G','R','A','N','T', + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 20, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S','E','S', 4, + blr_boolean, + blr_eql, + blr_field, 4, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_field, 3, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_begin, + blr_erase, 4, + blr_end, + blr_modify, 3, 5, + blr_begin, + blr_assignment, + blr_null, + blr_field, 5, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + +RDB$TRIGGER_NAME RDB$TRIGGER_9 +RDB$RELATION_NAME RDB$USER_PRIVILEGES +RDB$TRIGGER_SEQUENCE 0 +RDB$TRIGGER_TYPE 1 +RDB$TRIGGER_SOURCE +RDB$TRIGGER_BLR c:2 + blr_version5, + blr_begin, + blr_if, + blr_missing, + blr_field, 1, 11, 'R','D','B','$','G','R','A','N','T','O','R', + blr_assignment, + blr_user_name, + blr_field, 1, 11, 'R','D','B','$','G','R','A','N','T','O','R', + blr_end, + blr_if, + blr_eql, + blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_begin, + blr_for, + blr_rse, 1, + blr_relation, 13, 'R','D','B','$','R','E','L','A','T','I','O','N','S', 6, + blr_boolean, + blr_eql, + blr_field, 6, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_or, + blr_and, + blr_eql, + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_user_name, + blr_and, + blr_eql, + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_field, 1, 11, 'R','D','B','$','G','R','A','N','T','O','R', + blr_eql, + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_field, 1, 8, 'R','D','B','$','U','S','E','R', + blr_eql, + blr_sys_function, 20, 'R','D','B','$','S','Y','S','T','E','M','_','P','R','I','V','I','L','E','G','E',1, + blr_literal, blr_short, 0, 21,0, + blr_literal, blr_bool, 1, + blr_begin, + blr_end, + blr_if, + blr_neq, + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_user_name, + blr_begin, + blr_end, + blr_if, + blr_not, + blr_missing, + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_begin, + blr_for, + blr_rse, 3, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 8, + blr_relation, 18, 'R','D','B','$','V','I','E','W','_','R','E','L','A','T','I','O','N','S', 9, + blr_relation, 13, 'R','D','B','$','R','E','L','A','T','I','O','N','S', 10, + blr_boolean, + blr_and, + blr_eql, + blr_field, 8, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 8, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_not, + blr_missing, + blr_field, 8, 14, 'R','D','B','$','B','A','S','E','_','F','I','E','L','D', + blr_and, + blr_eql, + blr_field, 9, 13, 'R','D','B','$','V','I','E','W','_','N','A','M','E', + blr_field, 8, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 9, 16, 'R','D','B','$','V','I','E','W','_','C','O','N','T','E','X','T', + blr_field, 8, 16, 'R','D','B','$','V','I','E','W','_','C','O','N','T','E','X','T', + blr_eql, + blr_field, 9, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 10, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_and, + blr_neq, + blr_field, 10, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_neq, + blr_sys_function, 20, 'R','D','B','$','S','Y','S','T','E','M','_','P','R','I','V','I','L','E','G','E',1, + blr_literal, blr_short, 0, 21,0, + blr_literal, blr_bool, 1, + blr_begin, + blr_if, + blr_not, + blr_any, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','U','S','E','R','_','P','R','I','V','I','L','E','G','E','S', 11, + blr_boolean, + blr_and, + blr_eql, + blr_field, 11, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 10, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 11, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_and, + blr_eql, + blr_field, 11, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', + blr_field, 1, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', + blr_and, + blr_eql, + blr_field, 11, 8, 'R','D','B','$','U','S','E','R', + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 11, 13, 'R','D','B','$','U','S','E','R','_','T','Y','P','E', + blr_literal, blr_long, 0, 8,0,0,0, + blr_and, + blr_neq, + blr_field, 11, 16, 'R','D','B','$','G','R','A','N','T','_','O','P','T','I','O','N', + blr_literal, blr_long, 0, 0,0,0,0, + blr_or, + blr_missing, + blr_field, 11, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_eql, + blr_field, 11, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 8, 14, 'R','D','B','$','B','A','S','E','_','F','I','E','L','D', + blr_end, + blr_leave, 5, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_begin, + blr_for, + blr_rse, 2, + blr_relation, 18, 'R','D','B','$','V','I','E','W','_','R','E','L','A','T','I','O','N','S', 12, + blr_relation, 13, 'R','D','B','$','R','E','L','A','T','I','O','N','S', 13, + blr_boolean, + blr_and, + blr_eql, + blr_field, 12, 13, 'R','D','B','$','V','I','E','W','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 12, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 13, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_and, + blr_neq, + blr_field, 13, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_neq, + blr_sys_function, 20, 'R','D','B','$','S','Y','S','T','E','M','_','P','R','I','V','I','L','E','G','E',1, + blr_literal, blr_short, 0, 21,0, + blr_literal, blr_bool, 1, + blr_begin, + blr_if, + blr_not, + blr_any, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','U','S','E','R','_','P','R','I','V','I','L','E','G','E','S', 14, + blr_boolean, + blr_and, + blr_eql, + blr_field, 14, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 13, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 14, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 0,0,0,0, + blr_and, + blr_eql, + blr_field, 14, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', + blr_field, 1, 13, 'R','D','B','$','P','R','I','V','I','L','E','G','E', + blr_and, + blr_eql, + blr_field, 14, 8, 'R','D','B','$','U','S','E','R', + blr_field, 6, 14, 'R','D','B','$','O','W','N','E','R','_','N','A','M','E', + blr_and, + blr_eql, + blr_field, 14, 13, 'R','D','B','$','U','S','E','R','_','T','Y','P','E', + blr_literal, blr_long, 0, 8,0,0,0, + blr_and, + blr_neq, + blr_field, 14, 16, 'R','D','B','$','G','R','A','N','T','_','O','P','T','I','O','N', + blr_literal, blr_long, 0, 0,0,0,0, + blr_missing, + blr_field, 14, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_leave, 5, + blr_end, + blr_end, + blr_end, + blr_end, + blr_end, + blr_if, + blr_missing, + blr_field, 6, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_modify, 6, 15, + blr_begin, + blr_assignment, + blr_cast, blr_varying2, 4,0, 252,0, + blr_concatenate, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_long, 0, 1,0,0,0, + blr_field, 15, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + + blr_if, + blr_not, + blr_starting, + blr_field, 6, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_cast, blr_varying2, 4,0, 252,0, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_leave, 3, + blr_end, + blr_end, + blr_if, + blr_not, + blr_missing, + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_for, + blr_rse, 1, + blr_relation, 19, 'R','D','B','$','R','E','L','A','T','I','O','N','_','F','I','E','L','D','S', 16, + blr_boolean, + blr_and, + blr_eql, + blr_field, 16, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_eql, + blr_field, 16, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_field, 1, 14, 'R','D','B','$','F','I','E','L','D','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_missing, + blr_field, 16, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_modify, 16, 17, + blr_begin, + blr_assignment, + blr_concatenate, + blr_literal, blr_text, 9,0, 'S','Q','L','$','G','R','A','N','T', + blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_long, 0, 1,0,0,0, + blr_field, 17, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_if, + blr_not, + blr_starting, + blr_field, 16, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_text, 9,0, 'S','Q','L','$','G','R','A','N','T', + blr_leave, 4, + blr_end, + blr_end, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 5,0,0,0, + blr_for, + blr_rse, 1, + blr_relation, 14, 'R','D','B','$','P','R','O','C','E','D','U','R','E','S', 18, + blr_boolean, + blr_and, + blr_missing, + blr_field, 18, 16, 'R','D','B','$','P','A','C','K','A','G','E','_','N','A','M','E', + blr_eql, + blr_field, 18, 18, 'R','D','B','$','P','R','O','C','E','D','U','R','E','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_missing, + blr_field, 18, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_modify, 18, 20, + blr_begin, + blr_assignment, + blr_cast, blr_varying2, 4,0, 252,0, + blr_concatenate, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_long, 0, 1,0,0,0, + blr_field, 20, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_if, + blr_not, + blr_starting, + blr_field, 18, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_cast, blr_varying2, 4,0, 252,0, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_leave, 3, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 15,0,0,0, + blr_for, + blr_rse, 1, + blr_relation, 13, 'R','D','B','$','F','U','N','C','T','I','O','N','S', 26, + blr_boolean, + blr_and, + blr_missing, + blr_field, 26, 16, 'R','D','B','$','P','A','C','K','A','G','E','_','N','A','M','E', + blr_eql, + blr_field, 26, 17, 'R','D','B','$','F','U','N','C','T','I','O','N','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_missing, + blr_field, 26, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_modify, 26, 28, + blr_begin, + blr_assignment, + blr_cast, blr_varying2, 4,0, 252,0, + blr_concatenate, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_long, 0, 1,0,0,0, + blr_field, 28, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_if, + blr_not, + blr_starting, + blr_field, 26, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_cast, blr_varying2, 4,0, 252,0, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_leave, 3, + blr_end, + blr_end, + blr_if, + blr_eql, + blr_field, 1, 15, 'R','D','B','$','O','B','J','E','C','T','_','T','Y','P','E', + blr_literal, blr_long, 0, 18,0,0,0, + blr_for, + blr_rse, 1, + blr_relation, 12, 'R','D','B','$','P','A','C','K','A','G','E','S', 22, + blr_boolean, + blr_eql, + blr_field, 22, 16, 'R','D','B','$','P','A','C','K','A','G','E','_','N','A','M','E', + blr_field, 1, 17, 'R','D','B','$','R','E','L','A','T','I','O','N','_','N','A','M','E', + blr_end, + blr_begin, + blr_if, + blr_missing, + blr_field, 22, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_modify, 22, 23, + blr_begin, + blr_assignment, + blr_cast, blr_varying2, 4,0, 252,0, + blr_concatenate, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_gen_id, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_literal, blr_long, 0, 1,0,0,0, + blr_field, 23, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_end, + blr_if, + blr_not, + blr_starting, + blr_field, 22, 18, 'R','D','B','$','S','E','C','U','R','I','T','Y','_','C','L','A','S','S', + blr_cast, blr_varying2, 4,0, 252,0, + blr_literal, blr_text2, 1,0, 4,0, 'S','Q','L','$', + blr_leave, 3, + blr_end, + blr_end, + blr_end, + blr_end, + blr_eoc + +RDB$DESCRIPTION +RDB$TRIGGER_INACTIVE +RDB$SYSTEM_FLAG 1 +RDB$FLAGS 0 +RDB$VALID_BLR +RDB$DEBUG_INFO +RDB$ENGINE_NAME +RDB$ENTRYPOINT +RDB$SQL_SECURITY + + +Records affected: 26 + +""" + +@pytest.mark.version('>=4.1') +def test_3(act_3: Action): + act_3.expected_stdout = expected_stdout_3 + act_3.execute() + assert act_3.clean_stdout == act_3.clean_expected_stdout diff --git a/tests/functional/basic/db/test_30.py b/tests/functional/basic/db/test_30.py index 725a8a77..3b005762 100644 --- a/tests/functional/basic/db/test_30.py +++ b/tests/functional/basic/db/test_30.py @@ -2,16 +2,17 @@ # # id: functional.basic.db.30 # title: Empty DB - RDB$TYPES -# decription: +# decription: # Check for correct content of RDB$TYPES in empty database. # Checked on: -# 2.5.9.27126: OK, 0.562s. -# 3.0.5.33086: OK, 1.641s. -# 4.0.0.1378: OK, 5.047s. -# -# tracker_id: +# 2.5.9.27152 +# 3.0.8.33468 +# 4.0.0.2491 +# 5.0.0.43 // 21.05.2021: created separate section for this major FB version. +# +# tracker_id: # min_versions: ['2.5.7'] -# versions: 3.0, 4.0 +# versions: 3.0, 4.0, 5.0 # qmid: functional.basic.db.db_30 import pytest @@ -32,1551 +33,1551 @@ test_script_1 = """ show table rdb$types; select count(*) "Number of rows in rdb$types:" from rdb$types; select * from rdb$types; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ DDL of table rdb$types: - + RDB$FIELD_NAME (RDB$FIELD_NAME) CHAR(31) CHARACTER SET UNICODE_FSS Nullable RDB$TYPE (RDB$GENERIC_TYPE) SMALLINT Nullable RDB$TYPE_NAME (RDB$TYPE_NAME) CHAR(31) CHARACTER SET UNICODE_FSS Nullable RDB$DESCRIPTION (RDB$DESCRIPTION) BLOB segment 80, subtype TEXT CHARACTER SET UNICODE_FSS Nullable RDB$SYSTEM_FLAG (RDB$SYSTEM_FLAG) SMALLINT Not Null - + Number of rows in rdb$types: 254 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 14 RDB$TYPE_NAME TEXT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 7 RDB$TYPE_NAME SHORT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 8 RDB$TYPE_NAME LONG RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 9 RDB$TYPE_NAME QUAD RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 10 RDB$TYPE_NAME FLOAT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 27 RDB$TYPE_NAME DOUBLE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 35 RDB$TYPE_NAME TIMESTAMP RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 37 RDB$TYPE_NAME VARYING RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 261 RDB$TYPE_NAME BLOB RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 40 RDB$TYPE_NAME CSTRING RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 45 RDB$TYPE_NAME BLOB_ID RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 12 RDB$TYPE_NAME DATE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 13 RDB$TYPE_NAME TIME RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 16 RDB$TYPE_NAME INT64 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_TYPE RDB$TYPE 23 RDB$TYPE_NAME BOOLEAN RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE RDB$TYPE 0 RDB$TYPE_NAME BINARY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE RDB$TYPE 1 RDB$TYPE_NAME TEXT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE RDB$TYPE 2 RDB$TYPE_NAME BLR RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE RDB$TYPE 3 RDB$TYPE_NAME ACL RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE RDB$TYPE 4 RDB$TYPE_NAME RANGES RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE RDB$TYPE 5 RDB$TYPE_NAME SUMMARY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE RDB$TYPE 6 RDB$TYPE_NAME FORMAT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE RDB$TYPE 7 RDB$TYPE_NAME TRANSACTION_DESCRIPTION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE RDB$TYPE 8 RDB$TYPE_NAME EXTERNAL_FILE_DESCRIPTION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE RDB$TYPE 9 RDB$TYPE_NAME DEBUG_INFORMATION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FUNCTION_TYPE RDB$TYPE 0 RDB$TYPE_NAME VALUE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$FUNCTION_TYPE RDB$TYPE 1 RDB$TYPE_NAME BOOLEAN RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$MECHANISM RDB$TYPE 0 RDB$TYPE_NAME BY_VALUE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$MECHANISM RDB$TYPE 1 RDB$TYPE_NAME BY_REFERENCE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$MECHANISM RDB$TYPE 2 RDB$TYPE_NAME BY_VMS_DESCRIPTOR RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$MECHANISM RDB$TYPE 3 RDB$TYPE_NAME BY_ISC_DESCRIPTOR RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$MECHANISM RDB$TYPE 4 RDB$TYPE_NAME BY_SCALAR_ARRAY_DESCRIPTOR RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$MECHANISM RDB$TYPE 5 RDB$TYPE_NAME BY_REFERENCE_WITH_NULL RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_TYPE RDB$TYPE 1 RDB$TYPE_NAME PRE_STORE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_TYPE RDB$TYPE 2 RDB$TYPE_NAME POST_STORE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_TYPE RDB$TYPE 3 RDB$TYPE_NAME PRE_MODIFY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_TYPE RDB$TYPE 4 RDB$TYPE_NAME POST_MODIFY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_TYPE RDB$TYPE 5 RDB$TYPE_NAME PRE_ERASE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_TYPE RDB$TYPE 6 RDB$TYPE_NAME POST_ERASE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_TYPE RDB$TYPE 8192 RDB$TYPE_NAME CONNECT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_TYPE RDB$TYPE 8193 RDB$TYPE_NAME DISCONNECT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_TYPE RDB$TYPE 8194 RDB$TYPE_NAME TRANSACTION_START RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_TYPE RDB$TYPE 8195 RDB$TYPE_NAME TRANSACTION_COMMIT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_TYPE RDB$TYPE 8196 RDB$TYPE_NAME TRANSACTION_ROLLBACK RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 0 RDB$TYPE_NAME RELATION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 1 RDB$TYPE_NAME VIEW RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 2 RDB$TYPE_NAME TRIGGER RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 3 RDB$TYPE_NAME COMPUTED_FIELD RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 4 RDB$TYPE_NAME VALIDATION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 5 RDB$TYPE_NAME PROCEDURE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 6 RDB$TYPE_NAME EXPRESSION_INDEX RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 7 RDB$TYPE_NAME EXCEPTION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 8 RDB$TYPE_NAME USER RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 9 RDB$TYPE_NAME FIELD RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 10 RDB$TYPE_NAME INDEX RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 11 RDB$TYPE_NAME CHARACTER_SET RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 12 RDB$TYPE_NAME USER_GROUP RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 13 RDB$TYPE_NAME ROLE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 14 RDB$TYPE_NAME GENERATOR RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 15 RDB$TYPE_NAME UDF RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 16 RDB$TYPE_NAME BLOB_FILTER RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 17 RDB$TYPE_NAME COLLATION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 18 RDB$TYPE_NAME PACKAGE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$OBJECT_TYPE RDB$TYPE 19 RDB$TYPE_NAME PACKAGE BODY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRANSACTION_STATE RDB$TYPE 1 RDB$TYPE_NAME LIMBO RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRANSACTION_STATE RDB$TYPE 2 RDB$TYPE_NAME COMMITTED RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRANSACTION_STATE RDB$TYPE 3 RDB$TYPE_NAME ROLLED_BACK RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$SYSTEM_FLAG RDB$TYPE 0 RDB$TYPE_NAME USER RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$SYSTEM_FLAG RDB$TYPE 1 RDB$TYPE_NAME SYSTEM RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$SYSTEM_FLAG RDB$TYPE 2 RDB$TYPE_NAME QLI RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$SYSTEM_FLAG RDB$TYPE 3 RDB$TYPE_NAME CHECK_CONSTRAINT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$SYSTEM_FLAG RDB$TYPE 4 RDB$TYPE_NAME REFERENTIAL_CONSTRAINT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$SYSTEM_FLAG RDB$TYPE 5 RDB$TYPE_NAME VIEW_CHECK RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$SYSTEM_FLAG RDB$TYPE 6 RDB$TYPE_NAME IDENTITY_GENERATOR RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$RELATION_TYPE RDB$TYPE 0 RDB$TYPE_NAME PERSISTENT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$RELATION_TYPE RDB$TYPE 1 RDB$TYPE_NAME VIEW RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$RELATION_TYPE RDB$TYPE 2 RDB$TYPE_NAME EXTERNAL RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$RELATION_TYPE RDB$TYPE 3 RDB$TYPE_NAME VIRTUAL RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$RELATION_TYPE RDB$TYPE 4 RDB$TYPE_NAME GLOBAL_TEMPORARY_PRESERVE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$RELATION_TYPE RDB$TYPE 5 RDB$TYPE_NAME GLOBAL_TEMPORARY_DELETE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PROCEDURE_TYPE RDB$TYPE 0 RDB$TYPE_NAME LEGACY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PROCEDURE_TYPE RDB$TYPE 1 RDB$TYPE_NAME SELECTABLE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PROCEDURE_TYPE RDB$TYPE 2 RDB$TYPE_NAME EXECUTABLE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PARAMETER_MECHANISM RDB$TYPE 0 RDB$TYPE_NAME NORMAL RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PARAMETER_MECHANISM RDB$TYPE 1 RDB$TYPE_NAME TYPE OF RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$STATE RDB$TYPE 0 RDB$TYPE_NAME IDLE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$STATE RDB$TYPE 1 RDB$TYPE_NAME ACTIVE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$STATE RDB$TYPE 2 RDB$TYPE_NAME STALLED RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$SHUTDOWN_MODE RDB$TYPE 0 RDB$TYPE_NAME ONLINE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$SHUTDOWN_MODE RDB$TYPE 1 RDB$TYPE_NAME MULTI_USER_SHUTDOWN RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$SHUTDOWN_MODE RDB$TYPE 2 RDB$TYPE_NAME SINGLE_USER_SHUTDOWN RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$SHUTDOWN_MODE RDB$TYPE 3 RDB$TYPE_NAME FULL_SHUTDOWN RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$ISOLATION_MODE RDB$TYPE 0 RDB$TYPE_NAME CONSISTENCY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$ISOLATION_MODE RDB$TYPE 1 RDB$TYPE_NAME CONCURRENCY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$ISOLATION_MODE RDB$TYPE 2 RDB$TYPE_NAME READ_COMMITTED_VERSION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$ISOLATION_MODE RDB$TYPE 3 RDB$TYPE_NAME READ_COMMITTED_NO_VERSION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$BACKUP_STATE RDB$TYPE 0 RDB$TYPE_NAME NORMAL RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$BACKUP_STATE RDB$TYPE 1 RDB$TYPE_NAME STALLED RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$BACKUP_STATE RDB$TYPE 2 RDB$TYPE_NAME MERGE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$STAT_GROUP RDB$TYPE 0 RDB$TYPE_NAME DATABASE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$STAT_GROUP RDB$TYPE 1 RDB$TYPE_NAME ATTACHMENT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$STAT_GROUP RDB$TYPE 2 RDB$TYPE_NAME TRANSACTION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$STAT_GROUP RDB$TYPE 3 RDB$TYPE_NAME STATEMENT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME MON$STAT_GROUP RDB$TYPE 4 RDB$TYPE_NAME CALL RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$IDENTITY_TYPE RDB$TYPE 0 RDB$TYPE_NAME ALWAYS RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$IDENTITY_TYPE RDB$TYPE 1 RDB$TYPE_NAME BY DEFAULT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PARAMETER_TYPE RDB$TYPE 0 RDB$TYPE_NAME INPUT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PARAMETER_TYPE RDB$TYPE 1 RDB$TYPE_NAME OUTPUT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_INACTIVE RDB$TYPE 0 RDB$TYPE_NAME ACTIVE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$TRIGGER_INACTIVE RDB$TYPE 1 RDB$TYPE_NAME INACTIVE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$INDEX_INACTIVE RDB$TYPE 0 RDB$TYPE_NAME ACTIVE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$INDEX_INACTIVE RDB$TYPE 1 RDB$TYPE_NAME INACTIVE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$UNIQUE_FLAG RDB$TYPE 0 RDB$TYPE_NAME NON_UNIQUE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$UNIQUE_FLAG RDB$TYPE 1 RDB$TYPE_NAME UNIQUE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$GRANT_OPTION RDB$TYPE 0 RDB$TYPE_NAME NONE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$GRANT_OPTION RDB$TYPE 1 RDB$TYPE_NAME GRANT_OPTION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$GRANT_OPTION RDB$TYPE 2 RDB$TYPE_NAME ADMIN_OPTION RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PAGE_TYPE RDB$TYPE 1 RDB$TYPE_NAME HEADER RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PAGE_TYPE RDB$TYPE 2 RDB$TYPE_NAME PAGE_INVENTORY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PAGE_TYPE RDB$TYPE 3 RDB$TYPE_NAME TRANSACTION_INVENTORY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PAGE_TYPE RDB$TYPE 4 RDB$TYPE_NAME POINTER RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PAGE_TYPE RDB$TYPE 5 RDB$TYPE_NAME DATA RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PAGE_TYPE RDB$TYPE 6 RDB$TYPE_NAME INDEX_ROOT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PAGE_TYPE RDB$TYPE 7 RDB$TYPE_NAME INDEX_BUCKET RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PAGE_TYPE RDB$TYPE 8 RDB$TYPE_NAME BLOB RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PAGE_TYPE RDB$TYPE 9 RDB$TYPE_NAME GENERATOR RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PAGE_TYPE RDB$TYPE 10 RDB$TYPE_NAME SCN_INVENTORY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PRIVATE_FLAG RDB$TYPE 0 RDB$TYPE_NAME PUBLIC RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$PRIVATE_FLAG RDB$TYPE 1 RDB$TYPE_NAME PRIVATE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$LEGACY_FLAG RDB$TYPE 0 RDB$TYPE_NAME NEW_STYLE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$LEGACY_FLAG RDB$TYPE 1 RDB$TYPE_NAME LEGACY_STYLE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$DETERMINISTIC_FLAG RDB$TYPE 0 RDB$TYPE_NAME NON_DETERMINISTIC RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$DETERMINISTIC_FLAG RDB$TYPE 1 RDB$TYPE_NAME DETERMINISTIC RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$MAP_TO_TYPE RDB$TYPE 0 RDB$TYPE_NAME USER RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$MAP_TO_TYPE RDB$TYPE 1 RDB$TYPE_NAME ROLE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 0 RDB$TYPE_NAME NONE RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 1 RDB$TYPE_NAME OCTETS RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 2 RDB$TYPE_NAME ASCII RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 3 RDB$TYPE_NAME UNICODE_FSS RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 4 RDB$TYPE_NAME UTF8 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 5 RDB$TYPE_NAME SJIS_0208 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 6 RDB$TYPE_NAME EUCJ_0208 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 10 RDB$TYPE_NAME DOS437 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 11 RDB$TYPE_NAME DOS850 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 12 RDB$TYPE_NAME DOS865 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 21 RDB$TYPE_NAME ISO8859_1 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 22 RDB$TYPE_NAME ISO8859_2 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 23 RDB$TYPE_NAME ISO8859_3 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 34 RDB$TYPE_NAME ISO8859_4 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 35 RDB$TYPE_NAME ISO8859_5 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 36 RDB$TYPE_NAME ISO8859_6 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 37 RDB$TYPE_NAME ISO8859_7 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 38 RDB$TYPE_NAME ISO8859_8 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 39 RDB$TYPE_NAME ISO8859_9 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 40 RDB$TYPE_NAME ISO8859_13 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 45 RDB$TYPE_NAME DOS852 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 46 RDB$TYPE_NAME DOS857 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 13 RDB$TYPE_NAME DOS860 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 47 RDB$TYPE_NAME DOS861 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 14 RDB$TYPE_NAME DOS863 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 50 RDB$TYPE_NAME CYRL RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 9 RDB$TYPE_NAME DOS737 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 15 RDB$TYPE_NAME DOS775 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 16 RDB$TYPE_NAME DOS858 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 17 RDB$TYPE_NAME DOS862 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 18 RDB$TYPE_NAME DOS864 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 48 RDB$TYPE_NAME DOS866 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 49 RDB$TYPE_NAME DOS869 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 51 RDB$TYPE_NAME WIN1250 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 52 RDB$TYPE_NAME WIN1251 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 53 RDB$TYPE_NAME WIN1252 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 54 RDB$TYPE_NAME WIN1253 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 55 RDB$TYPE_NAME WIN1254 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 19 RDB$TYPE_NAME NEXT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 58 RDB$TYPE_NAME WIN1255 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 59 RDB$TYPE_NAME WIN1256 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 60 RDB$TYPE_NAME WIN1257 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 44 RDB$TYPE_NAME KSC_5601 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 56 RDB$TYPE_NAME BIG_5 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 57 RDB$TYPE_NAME GB_2312 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 63 RDB$TYPE_NAME KOI8R RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 64 RDB$TYPE_NAME KOI8U RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 65 RDB$TYPE_NAME WIN1258 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 66 RDB$TYPE_NAME TIS620 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 67 RDB$TYPE_NAME GBK RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 68 RDB$TYPE_NAME CP943C RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 69 RDB$TYPE_NAME GB18030 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 1 RDB$TYPE_NAME BINARY RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 2 RDB$TYPE_NAME USASCII RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 2 RDB$TYPE_NAME ASCII7 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 3 RDB$TYPE_NAME UTF_FSS RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 3 RDB$TYPE_NAME SQL_TEXT RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 4 RDB$TYPE_NAME UTF-8 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 5 RDB$TYPE_NAME SJIS RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 6 RDB$TYPE_NAME EUCJ RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 10 RDB$TYPE_NAME DOS_437 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 11 RDB$TYPE_NAME DOS_850 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 12 RDB$TYPE_NAME DOS_865 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 21 RDB$TYPE_NAME ISO88591 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 21 RDB$TYPE_NAME LATIN1 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 21 RDB$TYPE_NAME ANSI RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 22 RDB$TYPE_NAME ISO88592 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 22 RDB$TYPE_NAME LATIN2 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 22 RDB$TYPE_NAME ISO-8859-2 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 23 RDB$TYPE_NAME ISO88593 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 23 RDB$TYPE_NAME LATIN3 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 23 RDB$TYPE_NAME ISO-8859-3 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 34 RDB$TYPE_NAME ISO88594 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 34 RDB$TYPE_NAME LATIN4 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 34 RDB$TYPE_NAME ISO-8859-4 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 35 RDB$TYPE_NAME ISO88595 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 35 RDB$TYPE_NAME ISO-8859-5 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 36 RDB$TYPE_NAME ISO88596 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 36 RDB$TYPE_NAME ISO-8859-6 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 37 RDB$TYPE_NAME ISO88597 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 37 RDB$TYPE_NAME ISO-8859-7 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 38 RDB$TYPE_NAME ISO88598 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 38 RDB$TYPE_NAME ISO-8859-8 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 39 RDB$TYPE_NAME ISO88599 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 39 RDB$TYPE_NAME LATIN5 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 39 RDB$TYPE_NAME ISO-8859-9 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 40 RDB$TYPE_NAME ISO885913 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 40 RDB$TYPE_NAME LATIN7 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 40 RDB$TYPE_NAME ISO-8859-13 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 45 RDB$TYPE_NAME DOS_852 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 46 RDB$TYPE_NAME DOS_857 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 13 RDB$TYPE_NAME DOS_860 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 47 RDB$TYPE_NAME DOS_861 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 14 RDB$TYPE_NAME DOS_863 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 9 RDB$TYPE_NAME DOS_737 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 15 RDB$TYPE_NAME DOS_775 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 16 RDB$TYPE_NAME DOS_858 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 17 RDB$TYPE_NAME DOS_862 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 18 RDB$TYPE_NAME DOS_864 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 48 RDB$TYPE_NAME DOS_866 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 49 RDB$TYPE_NAME DOS_869 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 51 RDB$TYPE_NAME WIN_1250 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 52 RDB$TYPE_NAME WIN_1251 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 53 RDB$TYPE_NAME WIN_1252 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 54 RDB$TYPE_NAME WIN_1253 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 55 RDB$TYPE_NAME WIN_1254 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 58 RDB$TYPE_NAME WIN_1255 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 59 RDB$TYPE_NAME WIN_1256 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 60 RDB$TYPE_NAME WIN_1257 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 65 RDB$TYPE_NAME WIN_1258 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 44 RDB$TYPE_NAME KSC5601 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 44 RDB$TYPE_NAME DOS_949 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 44 RDB$TYPE_NAME WIN_949 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 56 RDB$TYPE_NAME BIG5 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 56 RDB$TYPE_NAME DOS_950 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 56 RDB$TYPE_NAME WIN_950 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 57 RDB$TYPE_NAME GB2312 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 57 RDB$TYPE_NAME DOS_936 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME RDB$TYPE 57 RDB$TYPE_NAME WIN_936 RDB$DESCRIPTION RDB$SYSTEM_FLAG 1 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -1600,1818 +1601,3341 @@ test_script_2 = """ set blob all; select * from rdb$types order by rdb$field_name, rdb$type_name; select iif(count(distinct rdb$field_name || rdb$type_name) = count(*), 1, 0) as "Are ordered columns unique ?" from rdb$types; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) expected_stdout_2 = """ -RDB$FIELD_NAME RDB$DBKEY_LENGTH - -RDB$FIELD_NAME RDB$DEFAULT_CLASS - -RDB$FIELD_NAME RDB$DESCRIPTION - -RDB$FIELD_NAME RDB$EXTERNAL_DESCRIPTION - -RDB$FIELD_NAME RDB$EXTERNAL_FILE - -RDB$FIELD_NAME RDB$FIELD_ID - -RDB$FIELD_NAME RDB$FLAGS - -RDB$FIELD_NAME RDB$FORMAT - -RDB$FIELD_NAME RDB$OWNER_NAME - -RDB$FIELD_NAME RDB$RELATION_ID - -RDB$FIELD_NAME RDB$RELATION_NAME - -RDB$FIELD_NAME RDB$RELATION_TYPE - -RDB$FIELD_NAME RDB$RUNTIME - -RDB$FIELD_NAME RDB$SECURITY_CLASS - -RDB$FIELD_NAME RDB$SQL_SECURITY - -RDB$FIELD_NAME RDB$SYSTEM_FLAG - -RDB$FIELD_NAME RDB$VIEW_BLR - -RDB$FIELD_NAME RDB$VIEW_SOURCE - - -SQL> SQL> SQL> SQL> -RDB$FIELD_NAME MON$BACKUP_STATE -RDB$TYPE 2 -RDB$TYPE_NAME MERGE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$BACKUP_STATE -RDB$TYPE 0 -RDB$TYPE_NAME NORMAL -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$BACKUP_STATE -RDB$TYPE 1 -RDB$TYPE_NAME STALLED -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$CRYPT_STATE -RDB$TYPE 2 -RDB$TYPE_NAME DECRYPT IN PROGRESS -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$CRYPT_STATE -RDB$TYPE 3 -RDB$TYPE_NAME ENCRYPT IN PROGRESS -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$CRYPT_STATE -RDB$TYPE 1 -RDB$TYPE_NAME ENCRYPTED -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$CRYPT_STATE -RDB$TYPE 0 -RDB$TYPE_NAME NOT ENCRYPTED -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$ISOLATION_MODE -RDB$TYPE 1 -RDB$TYPE_NAME CONCURRENCY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$ISOLATION_MODE -RDB$TYPE 0 -RDB$TYPE_NAME CONSISTENCY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$ISOLATION_MODE -RDB$TYPE 3 -RDB$TYPE_NAME READ_COMMITTED_NO_VERSION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$ISOLATION_MODE -RDB$TYPE 4 -RDB$TYPE_NAME READ_COMMITTED_READ_CONSISTENCY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$ISOLATION_MODE -RDB$TYPE 2 -RDB$TYPE_NAME READ_COMMITTED_VERSION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$REPLICA_MODE -RDB$TYPE 0 -RDB$TYPE_NAME NONE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$REPLICA_MODE -RDB$TYPE 1 -RDB$TYPE_NAME READ-ONLY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$REPLICA_MODE -RDB$TYPE 2 -RDB$TYPE_NAME READ-WRITE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$SHUTDOWN_MODE -RDB$TYPE 3 -RDB$TYPE_NAME FULL_SHUTDOWN -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$SHUTDOWN_MODE -RDB$TYPE 1 -RDB$TYPE_NAME MULTI_USER_SHUTDOWN -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$SHUTDOWN_MODE -RDB$TYPE 0 -RDB$TYPE_NAME ONLINE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$SHUTDOWN_MODE -RDB$TYPE 2 -RDB$TYPE_NAME SINGLE_USER_SHUTDOWN -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$STATE -RDB$TYPE 1 -RDB$TYPE_NAME ACTIVE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$STATE -RDB$TYPE 0 -RDB$TYPE_NAME IDLE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$STATE -RDB$TYPE 2 -RDB$TYPE_NAME STALLED -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$STAT_GROUP -RDB$TYPE 1 -RDB$TYPE_NAME ATTACHMENT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$STAT_GROUP -RDB$TYPE 4 -RDB$TYPE_NAME CALL -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$STAT_GROUP -RDB$TYPE 0 -RDB$TYPE_NAME DATABASE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$STAT_GROUP -RDB$TYPE 3 -RDB$TYPE_NAME STATEMENT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME MON$STAT_GROUP -RDB$TYPE 2 -RDB$TYPE_NAME TRANSACTION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 21 -RDB$TYPE_NAME ANSI -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 2 -RDB$TYPE_NAME ASCII -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 2 -RDB$TYPE_NAME ASCII7 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 56 -RDB$TYPE_NAME BIG5 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 56 -RDB$TYPE_NAME BIG_5 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 1 -RDB$TYPE_NAME BINARY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 68 -RDB$TYPE_NAME CP943C -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 50 -RDB$TYPE_NAME CYRL -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 10 -RDB$TYPE_NAME DOS437 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 9 -RDB$TYPE_NAME DOS737 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 15 -RDB$TYPE_NAME DOS775 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 11 -RDB$TYPE_NAME DOS850 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 45 -RDB$TYPE_NAME DOS852 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 46 -RDB$TYPE_NAME DOS857 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 16 -RDB$TYPE_NAME DOS858 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 13 -RDB$TYPE_NAME DOS860 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 47 -RDB$TYPE_NAME DOS861 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 17 -RDB$TYPE_NAME DOS862 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 14 -RDB$TYPE_NAME DOS863 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 18 -RDB$TYPE_NAME DOS864 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 12 -RDB$TYPE_NAME DOS865 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 48 -RDB$TYPE_NAME DOS866 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 49 -RDB$TYPE_NAME DOS869 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 10 -RDB$TYPE_NAME DOS_437 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 9 -RDB$TYPE_NAME DOS_737 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 15 -RDB$TYPE_NAME DOS_775 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 11 -RDB$TYPE_NAME DOS_850 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 45 -RDB$TYPE_NAME DOS_852 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 46 -RDB$TYPE_NAME DOS_857 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 16 -RDB$TYPE_NAME DOS_858 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 13 -RDB$TYPE_NAME DOS_860 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 47 -RDB$TYPE_NAME DOS_861 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 17 -RDB$TYPE_NAME DOS_862 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 14 -RDB$TYPE_NAME DOS_863 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 18 -RDB$TYPE_NAME DOS_864 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 12 -RDB$TYPE_NAME DOS_865 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 48 -RDB$TYPE_NAME DOS_866 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 49 -RDB$TYPE_NAME DOS_869 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 57 -RDB$TYPE_NAME DOS_936 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 44 -RDB$TYPE_NAME DOS_949 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 56 -RDB$TYPE_NAME DOS_950 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 6 -RDB$TYPE_NAME EUCJ -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 6 -RDB$TYPE_NAME EUCJ_0208 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 69 -RDB$TYPE_NAME GB18030 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 57 -RDB$TYPE_NAME GB2312 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 67 -RDB$TYPE_NAME GBK -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 57 -RDB$TYPE_NAME GB_2312 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 40 -RDB$TYPE_NAME ISO-8859-13 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 22 -RDB$TYPE_NAME ISO-8859-2 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 23 -RDB$TYPE_NAME ISO-8859-3 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 34 -RDB$TYPE_NAME ISO-8859-4 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 35 -RDB$TYPE_NAME ISO-8859-5 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 36 -RDB$TYPE_NAME ISO-8859-6 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 37 -RDB$TYPE_NAME ISO-8859-7 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 38 -RDB$TYPE_NAME ISO-8859-8 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 39 -RDB$TYPE_NAME ISO-8859-9 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 21 -RDB$TYPE_NAME ISO88591 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 40 -RDB$TYPE_NAME ISO885913 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 22 -RDB$TYPE_NAME ISO88592 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 23 -RDB$TYPE_NAME ISO88593 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 34 -RDB$TYPE_NAME ISO88594 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 35 -RDB$TYPE_NAME ISO88595 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 36 -RDB$TYPE_NAME ISO88596 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 37 -RDB$TYPE_NAME ISO88597 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 38 -RDB$TYPE_NAME ISO88598 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 39 -RDB$TYPE_NAME ISO88599 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 21 -RDB$TYPE_NAME ISO8859_1 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 40 -RDB$TYPE_NAME ISO8859_13 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 22 -RDB$TYPE_NAME ISO8859_2 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 23 -RDB$TYPE_NAME ISO8859_3 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 34 -RDB$TYPE_NAME ISO8859_4 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 35 -RDB$TYPE_NAME ISO8859_5 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 36 -RDB$TYPE_NAME ISO8859_6 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 37 -RDB$TYPE_NAME ISO8859_7 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 38 -RDB$TYPE_NAME ISO8859_8 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 39 -RDB$TYPE_NAME ISO8859_9 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 63 -RDB$TYPE_NAME KOI8R -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 64 -RDB$TYPE_NAME KOI8U -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 44 -RDB$TYPE_NAME KSC5601 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 44 -RDB$TYPE_NAME KSC_5601 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 21 -RDB$TYPE_NAME LATIN1 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 22 -RDB$TYPE_NAME LATIN2 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 23 -RDB$TYPE_NAME LATIN3 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 34 -RDB$TYPE_NAME LATIN4 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 39 -RDB$TYPE_NAME LATIN5 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 40 -RDB$TYPE_NAME LATIN7 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 19 -RDB$TYPE_NAME NEXT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 0 -RDB$TYPE_NAME NONE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 1 -RDB$TYPE_NAME OCTETS -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 5 -RDB$TYPE_NAME SJIS -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 5 -RDB$TYPE_NAME SJIS_0208 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 3 -RDB$TYPE_NAME SQL_TEXT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 66 -RDB$TYPE_NAME TIS620 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 3 -RDB$TYPE_NAME UNICODE_FSS -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 2 -RDB$TYPE_NAME USASCII -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 4 -RDB$TYPE_NAME UTF-8 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 4 -RDB$TYPE_NAME UTF8 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 3 -RDB$TYPE_NAME UTF_FSS -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 51 -RDB$TYPE_NAME WIN1250 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 52 -RDB$TYPE_NAME WIN1251 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 53 -RDB$TYPE_NAME WIN1252 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 54 -RDB$TYPE_NAME WIN1253 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 55 -RDB$TYPE_NAME WIN1254 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 58 -RDB$TYPE_NAME WIN1255 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 59 -RDB$TYPE_NAME WIN1256 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 60 -RDB$TYPE_NAME WIN1257 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 65 -RDB$TYPE_NAME WIN1258 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 51 -RDB$TYPE_NAME WIN_1250 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 52 -RDB$TYPE_NAME WIN_1251 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 53 -RDB$TYPE_NAME WIN_1252 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 54 -RDB$TYPE_NAME WIN_1253 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 55 -RDB$TYPE_NAME WIN_1254 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 58 -RDB$TYPE_NAME WIN_1255 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 59 -RDB$TYPE_NAME WIN_1256 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 60 -RDB$TYPE_NAME WIN_1257 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 65 -RDB$TYPE_NAME WIN_1258 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 57 -RDB$TYPE_NAME WIN_936 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 44 -RDB$TYPE_NAME WIN_949 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$CHARACTER_SET_NAME -RDB$TYPE 56 -RDB$TYPE_NAME WIN_950 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$DETERMINISTIC_FLAG -RDB$TYPE 1 -RDB$TYPE_NAME DETERMINISTIC -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$DETERMINISTIC_FLAG -RDB$TYPE 0 -RDB$TYPE_NAME NON_DETERMINISTIC -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_SUB_TYPE -RDB$TYPE 3 -RDB$TYPE_NAME ACL -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_SUB_TYPE -RDB$TYPE 0 -RDB$TYPE_NAME BINARY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_SUB_TYPE -RDB$TYPE 2 -RDB$TYPE_NAME BLR -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_SUB_TYPE -RDB$TYPE 9 -RDB$TYPE_NAME DEBUG_INFORMATION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_SUB_TYPE -RDB$TYPE 8 -RDB$TYPE_NAME EXTERNAL_FILE_DESCRIPTION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_SUB_TYPE -RDB$TYPE 6 -RDB$TYPE_NAME FORMAT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_SUB_TYPE -RDB$TYPE 4 -RDB$TYPE_NAME RANGES -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_SUB_TYPE -RDB$TYPE 5 -RDB$TYPE_NAME SUMMARY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_SUB_TYPE -RDB$TYPE 1 -RDB$TYPE_NAME TEXT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_SUB_TYPE -RDB$TYPE 7 -RDB$TYPE_NAME TRANSACTION_DESCRIPTION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 261 -RDB$TYPE_NAME BLOB -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 45 -RDB$TYPE_NAME BLOB_ID -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 23 -RDB$TYPE_NAME BOOLEAN -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 40 -RDB$TYPE_NAME CSTRING -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 12 -RDB$TYPE_NAME DATE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 24 -RDB$TYPE_NAME DECFLOAT(16) -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 25 -RDB$TYPE_NAME DECFLOAT(34) -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 27 -RDB$TYPE_NAME DOUBLE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 10 -RDB$TYPE_NAME FLOAT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 26 -RDB$TYPE_NAME INT128 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 16 -RDB$TYPE_NAME INT64 -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 8 -RDB$TYPE_NAME LONG -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 9 -RDB$TYPE_NAME QUAD -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 7 -RDB$TYPE_NAME SHORT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 14 -RDB$TYPE_NAME TEXT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 13 -RDB$TYPE_NAME TIME -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 28 -RDB$TYPE_NAME TIME WITH TIME ZONE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 35 -RDB$TYPE_NAME TIMESTAMP -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 29 -RDB$TYPE_NAME TIMESTAMP WITH TIME ZONE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FIELD_TYPE -RDB$TYPE 37 -RDB$TYPE_NAME VARYING -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FUNCTION_TYPE -RDB$TYPE 1 -RDB$TYPE_NAME BOOLEAN -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$FUNCTION_TYPE -RDB$TYPE 0 -RDB$TYPE_NAME VALUE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$GRANT_OPTION -RDB$TYPE 2 -RDB$TYPE_NAME ADMIN_OPTION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$GRANT_OPTION -RDB$TYPE 1 -RDB$TYPE_NAME GRANT_OPTION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$GRANT_OPTION -RDB$TYPE 0 -RDB$TYPE_NAME NONE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$IDENTITY_TYPE -RDB$TYPE 0 -RDB$TYPE_NAME ALWAYS -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$IDENTITY_TYPE -RDB$TYPE 1 -RDB$TYPE_NAME BY DEFAULT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$INDEX_INACTIVE -RDB$TYPE 0 -RDB$TYPE_NAME ACTIVE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$INDEX_INACTIVE -RDB$TYPE 1 -RDB$TYPE_NAME INACTIVE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$LEGACY_FLAG -RDB$TYPE 1 -RDB$TYPE_NAME LEGACY_STYLE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$LEGACY_FLAG -RDB$TYPE 0 -RDB$TYPE_NAME NEW_STYLE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$MAP_TO_TYPE -RDB$TYPE 1 -RDB$TYPE_NAME ROLE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$MAP_TO_TYPE -RDB$TYPE 0 -RDB$TYPE_NAME USER -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$MECHANISM -RDB$TYPE 3 -RDB$TYPE_NAME BY_ISC_DESCRIPTOR -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$MECHANISM -RDB$TYPE 1 -RDB$TYPE_NAME BY_REFERENCE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$MECHANISM -RDB$TYPE 5 -RDB$TYPE_NAME BY_REFERENCE_WITH_NULL -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$MECHANISM -RDB$TYPE 4 -RDB$TYPE_NAME BY_SCALAR_ARRAY_DESCRIPTOR -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$MECHANISM -RDB$TYPE 0 -RDB$TYPE_NAME BY_VALUE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$MECHANISM -RDB$TYPE 2 -RDB$TYPE_NAME BY_VMS_DESCRIPTOR -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 16 -RDB$TYPE_NAME BLOB_FILTER -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 11 -RDB$TYPE_NAME CHARACTER_SET -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 17 -RDB$TYPE_NAME COLLATION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 3 -RDB$TYPE_NAME COMPUTED_FIELD -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 7 -RDB$TYPE_NAME EXCEPTION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 6 -RDB$TYPE_NAME EXPRESSION_INDEX -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 9 -RDB$TYPE_NAME FIELD -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 14 -RDB$TYPE_NAME GENERATOR -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 10 -RDB$TYPE_NAME INDEX -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 18 -RDB$TYPE_NAME PACKAGE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 19 -RDB$TYPE_NAME PACKAGE BODY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 5 -RDB$TYPE_NAME PROCEDURE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 0 -RDB$TYPE_NAME RELATION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 13 -RDB$TYPE_NAME ROLE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 2 -RDB$TYPE_NAME TRIGGER -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 15 -RDB$TYPE_NAME UDF -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 8 -RDB$TYPE_NAME USER -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 12 -RDB$TYPE_NAME USER_GROUP -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 4 -RDB$TYPE_NAME VALIDATION -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$OBJECT_TYPE -RDB$TYPE 1 -RDB$TYPE_NAME VIEW -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PAGE_TYPE -RDB$TYPE 8 -RDB$TYPE_NAME BLOB -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PAGE_TYPE -RDB$TYPE 5 -RDB$TYPE_NAME DATA -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PAGE_TYPE -RDB$TYPE 9 -RDB$TYPE_NAME GENERATOR -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PAGE_TYPE -RDB$TYPE 1 -RDB$TYPE_NAME HEADER -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PAGE_TYPE -RDB$TYPE 7 -RDB$TYPE_NAME INDEX_BUCKET -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PAGE_TYPE -RDB$TYPE 6 -RDB$TYPE_NAME INDEX_ROOT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PAGE_TYPE -RDB$TYPE 2 -RDB$TYPE_NAME PAGE_INVENTORY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PAGE_TYPE -RDB$TYPE 4 -RDB$TYPE_NAME POINTER -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PAGE_TYPE -RDB$TYPE 10 -RDB$TYPE_NAME SCN_INVENTORY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PAGE_TYPE -RDB$TYPE 3 -RDB$TYPE_NAME TRANSACTION_INVENTORY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PARAMETER_MECHANISM -RDB$TYPE 0 -RDB$TYPE_NAME NORMAL -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PARAMETER_MECHANISM -RDB$TYPE 1 -RDB$TYPE_NAME TYPE OF -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PARAMETER_TYPE -RDB$TYPE 0 -RDB$TYPE_NAME INPUT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PARAMETER_TYPE -RDB$TYPE 1 -RDB$TYPE_NAME OUTPUT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PRIVATE_FLAG -RDB$TYPE 1 -RDB$TYPE_NAME PRIVATE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PRIVATE_FLAG -RDB$TYPE 0 -RDB$TYPE_NAME PUBLIC -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PROCEDURE_TYPE -RDB$TYPE 2 -RDB$TYPE_NAME EXECUTABLE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PROCEDURE_TYPE -RDB$TYPE 0 -RDB$TYPE_NAME LEGACY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$PROCEDURE_TYPE -RDB$TYPE 1 -RDB$TYPE_NAME SELECTABLE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$RELATION_TYPE -RDB$TYPE 2 -RDB$TYPE_NAME EXTERNAL -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$RELATION_TYPE -RDB$TYPE 5 -RDB$TYPE_NAME GLOBAL_TEMPORARY_DELETE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$RELATION_TYPE -RDB$TYPE 4 -RDB$TYPE_NAME GLOBAL_TEMPORARY_PRESERVE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$RELATION_TYPE -RDB$TYPE 0 -RDB$TYPE_NAME PERSISTENT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$RELATION_TYPE -RDB$TYPE 1 -RDB$TYPE_NAME VIEW -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$RELATION_TYPE -RDB$TYPE 3 -RDB$TYPE_NAME VIRTUAL -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_FLAG -RDB$TYPE 3 -RDB$TYPE_NAME CHECK_CONSTRAINT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_FLAG -RDB$TYPE 6 -RDB$TYPE_NAME IDENTITY_GENERATOR -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_FLAG -RDB$TYPE 2 -RDB$TYPE_NAME QLI -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_FLAG -RDB$TYPE 4 -RDB$TYPE_NAME REFERENTIAL_CONSTRAINT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_FLAG -RDB$TYPE 1 -RDB$TYPE_NAME SYSTEM -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_FLAG -RDB$TYPE 0 -RDB$TYPE_NAME USER -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_FLAG -RDB$TYPE 5 -RDB$TYPE_NAME VIEW_CHECK -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 17 -RDB$TYPE_NAME ACCESS_ANY_OBJECT_IN_DATABASE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 8 -RDB$TYPE_NAME ACCESS_SHUTDOWN_DATABASE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 15 -RDB$TYPE_NAME CHANGE_HEADER_SETTINGS -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 19 -RDB$TYPE_NAME CHANGE_MAPPING_RULES -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 5 -RDB$TYPE_NAME CHANGE_SHUTDOWN_MODE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 9 -RDB$TYPE_NAME CREATE_DATABASE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 23 -RDB$TYPE_NAME CREATE_PRIVILEGED_ROLES -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 3 -RDB$TYPE_NAME CREATE_USER_TYPES -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 10 -RDB$TYPE_NAME DROP_DATABASE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 24 -RDB$TYPE_NAME GET_DBCRYPT_INFO -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 22 -RDB$TYPE_NAME GRANT_REVOKE_ANY_DDL_RIGHT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 21 -RDB$TYPE_NAME GRANT_REVOKE_ON_ANY_OBJECT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 14 -RDB$TYPE_NAME IGNORE_DB_TRIGGERS -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 18 -RDB$TYPE_NAME MODIFY_ANY_OBJECT_IN_DATABASE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 25 -RDB$TYPE_NAME MODIFY_EXT_CONN_POOL -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 7 -RDB$TYPE_NAME MONITOR_ANY_ATTACHMENT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 2 -RDB$TYPE_NAME READ_RAW_PAGES -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 26 -RDB$TYPE_NAME REPLICATE_INTO_DATABASE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 16 -RDB$TYPE_NAME SELECT_ANY_OBJECT_IN_DATABASE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 6 -RDB$TYPE_NAME TRACE_ANY_ATTACHMENT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 1 -RDB$TYPE_NAME USER_MANAGEMENT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 11 -RDB$TYPE_NAME USE_GBAK_UTILITY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 13 -RDB$TYPE_NAME USE_GFIX_UTILITY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 20 -RDB$TYPE_NAME USE_GRANTED_BY_CLAUSE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 12 -RDB$TYPE_NAME USE_GSTAT_UTILITY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES -RDB$TYPE 4 -RDB$TYPE_NAME USE_NBACKUP_UTILITY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRANSACTION_STATE -RDB$TYPE 2 -RDB$TYPE_NAME COMMITTED -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRANSACTION_STATE -RDB$TYPE 1 -RDB$TYPE_NAME LIMBO -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRANSACTION_STATE -RDB$TYPE 3 -RDB$TYPE_NAME ROLLED_BACK -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_INACTIVE -RDB$TYPE 0 -RDB$TYPE_NAME ACTIVE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_INACTIVE -RDB$TYPE 1 -RDB$TYPE_NAME INACTIVE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_TYPE -RDB$TYPE 8192 -RDB$TYPE_NAME CONNECT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_TYPE -RDB$TYPE 8193 -RDB$TYPE_NAME DISCONNECT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_TYPE -RDB$TYPE 6 -RDB$TYPE_NAME POST_ERASE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_TYPE -RDB$TYPE 4 -RDB$TYPE_NAME POST_MODIFY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_TYPE -RDB$TYPE 2 -RDB$TYPE_NAME POST_STORE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_TYPE -RDB$TYPE 5 -RDB$TYPE_NAME PRE_ERASE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_TYPE -RDB$TYPE 3 -RDB$TYPE_NAME PRE_MODIFY -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_TYPE -RDB$TYPE 1 -RDB$TYPE_NAME PRE_STORE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_TYPE -RDB$TYPE 8195 -RDB$TYPE_NAME TRANSACTION_COMMIT -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_TYPE -RDB$TYPE 8196 -RDB$TYPE_NAME TRANSACTION_ROLLBACK -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$TRIGGER_TYPE -RDB$TYPE 8194 -RDB$TYPE_NAME TRANSACTION_START -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$UNIQUE_FLAG -RDB$TYPE 0 -RDB$TYPE_NAME NON_UNIQUE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - -RDB$FIELD_NAME RDB$UNIQUE_FLAG -RDB$TYPE 1 -RDB$TYPE_NAME UNIQUE -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 - - -Records affected: 293 -Are ordered columns unique ? 1 - - -Records affected: 1 + RDB$FIELD_NAME RDB$DBKEY_LENGTH + RDB$FIELD_NAME RDB$DEFAULT_CLASS + RDB$FIELD_NAME RDB$DESCRIPTION + RDB$FIELD_NAME RDB$EXTERNAL_DESCRIPTION + RDB$FIELD_NAME RDB$EXTERNAL_FILE + RDB$FIELD_NAME RDB$FIELD_ID + RDB$FIELD_NAME RDB$FLAGS + RDB$FIELD_NAME RDB$FORMAT + RDB$FIELD_NAME RDB$OWNER_NAME + RDB$FIELD_NAME RDB$RELATION_ID + RDB$FIELD_NAME RDB$RELATION_NAME + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$FIELD_NAME RDB$RUNTIME + RDB$FIELD_NAME RDB$SECURITY_CLASS + RDB$FIELD_NAME RDB$SQL_SECURITY + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$FIELD_NAME RDB$VIEW_BLR + RDB$FIELD_NAME RDB$VIEW_SOURCE + RDB$FIELD_NAME MON$BACKUP_STATE + RDB$TYPE 2 + RDB$TYPE_NAME MERGE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$BACKUP_STATE + RDB$TYPE 0 + RDB$TYPE_NAME NORMAL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$BACKUP_STATE + RDB$TYPE 1 + RDB$TYPE_NAME STALLED + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$CRYPT_STATE + RDB$TYPE 2 + RDB$TYPE_NAME DECRYPT IN PROGRESS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$CRYPT_STATE + RDB$TYPE 3 + RDB$TYPE_NAME ENCRYPT IN PROGRESS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$CRYPT_STATE + RDB$TYPE 1 + RDB$TYPE_NAME ENCRYPTED + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$CRYPT_STATE + RDB$TYPE 0 + RDB$TYPE_NAME NOT ENCRYPTED + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$ISOLATION_MODE + RDB$TYPE 1 + RDB$TYPE_NAME CONCURRENCY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$ISOLATION_MODE + RDB$TYPE 0 + RDB$TYPE_NAME CONSISTENCY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$ISOLATION_MODE + RDB$TYPE 3 + RDB$TYPE_NAME READ_COMMITTED_NO_VERSION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$ISOLATION_MODE + RDB$TYPE 4 + RDB$TYPE_NAME READ_COMMITTED_READ_CONSISTENCY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$ISOLATION_MODE + RDB$TYPE 2 + RDB$TYPE_NAME READ_COMMITTED_VERSION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$REPLICA_MODE + RDB$TYPE 0 + RDB$TYPE_NAME NONE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$REPLICA_MODE + RDB$TYPE 1 + RDB$TYPE_NAME READ-ONLY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$REPLICA_MODE + RDB$TYPE 2 + RDB$TYPE_NAME READ-WRITE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$SHUTDOWN_MODE + RDB$TYPE 3 + RDB$TYPE_NAME FULL_SHUTDOWN + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$SHUTDOWN_MODE + RDB$TYPE 1 + RDB$TYPE_NAME MULTI_USER_SHUTDOWN + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$SHUTDOWN_MODE + RDB$TYPE 0 + RDB$TYPE_NAME ONLINE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$SHUTDOWN_MODE + RDB$TYPE 2 + RDB$TYPE_NAME SINGLE_USER_SHUTDOWN + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$STATE + RDB$TYPE 1 + RDB$TYPE_NAME ACTIVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$STATE + RDB$TYPE 0 + RDB$TYPE_NAME IDLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$STATE + RDB$TYPE 2 + RDB$TYPE_NAME STALLED + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$STAT_GROUP + RDB$TYPE 1 + RDB$TYPE_NAME ATTACHMENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$STAT_GROUP + RDB$TYPE 4 + RDB$TYPE_NAME CALL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$STAT_GROUP + RDB$TYPE 0 + RDB$TYPE_NAME DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$STAT_GROUP + RDB$TYPE 3 + RDB$TYPE_NAME STATEMENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME MON$STAT_GROUP + RDB$TYPE 2 + RDB$TYPE_NAME TRANSACTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 21 + RDB$TYPE_NAME ANSI + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 2 + RDB$TYPE_NAME ASCII + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 2 + RDB$TYPE_NAME ASCII7 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 56 + RDB$TYPE_NAME BIG5 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 56 + RDB$TYPE_NAME BIG_5 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 1 + RDB$TYPE_NAME BINARY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 68 + RDB$TYPE_NAME CP943C + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 50 + RDB$TYPE_NAME CYRL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 10 + RDB$TYPE_NAME DOS437 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 9 + RDB$TYPE_NAME DOS737 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 15 + RDB$TYPE_NAME DOS775 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 11 + RDB$TYPE_NAME DOS850 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 45 + RDB$TYPE_NAME DOS852 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 46 + RDB$TYPE_NAME DOS857 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 16 + RDB$TYPE_NAME DOS858 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 13 + RDB$TYPE_NAME DOS860 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 47 + RDB$TYPE_NAME DOS861 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 17 + RDB$TYPE_NAME DOS862 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 14 + RDB$TYPE_NAME DOS863 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 18 + RDB$TYPE_NAME DOS864 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 12 + RDB$TYPE_NAME DOS865 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 48 + RDB$TYPE_NAME DOS866 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 49 + RDB$TYPE_NAME DOS869 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 10 + RDB$TYPE_NAME DOS_437 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 9 + RDB$TYPE_NAME DOS_737 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 15 + RDB$TYPE_NAME DOS_775 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 11 + RDB$TYPE_NAME DOS_850 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 45 + RDB$TYPE_NAME DOS_852 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 46 + RDB$TYPE_NAME DOS_857 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 16 + RDB$TYPE_NAME DOS_858 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 13 + RDB$TYPE_NAME DOS_860 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 47 + RDB$TYPE_NAME DOS_861 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 17 + RDB$TYPE_NAME DOS_862 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 14 + RDB$TYPE_NAME DOS_863 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 18 + RDB$TYPE_NAME DOS_864 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 12 + RDB$TYPE_NAME DOS_865 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 48 + RDB$TYPE_NAME DOS_866 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 49 + RDB$TYPE_NAME DOS_869 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 57 + RDB$TYPE_NAME DOS_936 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 44 + RDB$TYPE_NAME DOS_949 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 56 + RDB$TYPE_NAME DOS_950 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 6 + RDB$TYPE_NAME EUCJ + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 6 + RDB$TYPE_NAME EUCJ_0208 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 69 + RDB$TYPE_NAME GB18030 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 57 + RDB$TYPE_NAME GB2312 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 67 + RDB$TYPE_NAME GBK + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 57 + RDB$TYPE_NAME GB_2312 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 40 + RDB$TYPE_NAME ISO-8859-13 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 22 + RDB$TYPE_NAME ISO-8859-2 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 23 + RDB$TYPE_NAME ISO-8859-3 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 34 + RDB$TYPE_NAME ISO-8859-4 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 35 + RDB$TYPE_NAME ISO-8859-5 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 36 + RDB$TYPE_NAME ISO-8859-6 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 37 + RDB$TYPE_NAME ISO-8859-7 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 38 + RDB$TYPE_NAME ISO-8859-8 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 39 + RDB$TYPE_NAME ISO-8859-9 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 21 + RDB$TYPE_NAME ISO88591 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 40 + RDB$TYPE_NAME ISO885913 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 22 + RDB$TYPE_NAME ISO88592 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 23 + RDB$TYPE_NAME ISO88593 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 34 + RDB$TYPE_NAME ISO88594 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 35 + RDB$TYPE_NAME ISO88595 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 36 + RDB$TYPE_NAME ISO88596 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 37 + RDB$TYPE_NAME ISO88597 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 38 + RDB$TYPE_NAME ISO88598 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 39 + RDB$TYPE_NAME ISO88599 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 21 + RDB$TYPE_NAME ISO8859_1 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 40 + RDB$TYPE_NAME ISO8859_13 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 22 + RDB$TYPE_NAME ISO8859_2 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 23 + RDB$TYPE_NAME ISO8859_3 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 34 + RDB$TYPE_NAME ISO8859_4 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 35 + RDB$TYPE_NAME ISO8859_5 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 36 + RDB$TYPE_NAME ISO8859_6 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 37 + RDB$TYPE_NAME ISO8859_7 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 38 + RDB$TYPE_NAME ISO8859_8 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 39 + RDB$TYPE_NAME ISO8859_9 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 63 + RDB$TYPE_NAME KOI8R + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 64 + RDB$TYPE_NAME KOI8U + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 44 + RDB$TYPE_NAME KSC5601 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 44 + RDB$TYPE_NAME KSC_5601 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 21 + RDB$TYPE_NAME LATIN1 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 22 + RDB$TYPE_NAME LATIN2 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 23 + RDB$TYPE_NAME LATIN3 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 34 + RDB$TYPE_NAME LATIN4 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 39 + RDB$TYPE_NAME LATIN5 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 40 + RDB$TYPE_NAME LATIN7 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 19 + RDB$TYPE_NAME NEXT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 0 + RDB$TYPE_NAME NONE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 1 + RDB$TYPE_NAME OCTETS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 5 + RDB$TYPE_NAME SJIS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 5 + RDB$TYPE_NAME SJIS_0208 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 3 + RDB$TYPE_NAME SQL_TEXT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 66 + RDB$TYPE_NAME TIS620 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 3 + RDB$TYPE_NAME UNICODE_FSS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 2 + RDB$TYPE_NAME USASCII + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 4 + RDB$TYPE_NAME UTF-8 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 4 + RDB$TYPE_NAME UTF8 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 3 + RDB$TYPE_NAME UTF_FSS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 51 + RDB$TYPE_NAME WIN1250 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 52 + RDB$TYPE_NAME WIN1251 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 53 + RDB$TYPE_NAME WIN1252 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 54 + RDB$TYPE_NAME WIN1253 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 55 + RDB$TYPE_NAME WIN1254 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 58 + RDB$TYPE_NAME WIN1255 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 59 + RDB$TYPE_NAME WIN1256 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 60 + RDB$TYPE_NAME WIN1257 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 65 + RDB$TYPE_NAME WIN1258 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 51 + RDB$TYPE_NAME WIN_1250 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 52 + RDB$TYPE_NAME WIN_1251 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 53 + RDB$TYPE_NAME WIN_1252 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 54 + RDB$TYPE_NAME WIN_1253 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 55 + RDB$TYPE_NAME WIN_1254 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 58 + RDB$TYPE_NAME WIN_1255 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 59 + RDB$TYPE_NAME WIN_1256 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 60 + RDB$TYPE_NAME WIN_1257 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 65 + RDB$TYPE_NAME WIN_1258 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 57 + RDB$TYPE_NAME WIN_936 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 44 + RDB$TYPE_NAME WIN_949 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 56 + RDB$TYPE_NAME WIN_950 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$DETERMINISTIC_FLAG + RDB$TYPE 1 + RDB$TYPE_NAME DETERMINISTIC + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$DETERMINISTIC_FLAG + RDB$TYPE 0 + RDB$TYPE_NAME NON_DETERMINISTIC + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 3 + RDB$TYPE_NAME ACL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME BINARY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME BLR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 9 + RDB$TYPE_NAME DEBUG_INFORMATION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 8 + RDB$TYPE_NAME EXTERNAL_FILE_DESCRIPTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 6 + RDB$TYPE_NAME FORMAT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 4 + RDB$TYPE_NAME RANGES + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 5 + RDB$TYPE_NAME SUMMARY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME TEXT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 7 + RDB$TYPE_NAME TRANSACTION_DESCRIPTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 261 + RDB$TYPE_NAME BLOB + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 45 + RDB$TYPE_NAME BLOB_ID + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 23 + RDB$TYPE_NAME BOOLEAN + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 40 + RDB$TYPE_NAME CSTRING + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 12 + RDB$TYPE_NAME DATE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 24 + RDB$TYPE_NAME DECFLOAT(16) + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 25 + RDB$TYPE_NAME DECFLOAT(34) + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 27 + RDB$TYPE_NAME DOUBLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 10 + RDB$TYPE_NAME FLOAT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 26 + RDB$TYPE_NAME INT128 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 16 + RDB$TYPE_NAME INT64 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 8 + RDB$TYPE_NAME LONG + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 9 + RDB$TYPE_NAME QUAD + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 7 + RDB$TYPE_NAME SHORT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 14 + RDB$TYPE_NAME TEXT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 13 + RDB$TYPE_NAME TIME + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 28 + RDB$TYPE_NAME TIME WITH TIME ZONE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 35 + RDB$TYPE_NAME TIMESTAMP + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 29 + RDB$TYPE_NAME TIMESTAMP WITH TIME ZONE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 37 + RDB$TYPE_NAME VARYING + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FUNCTION_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME BOOLEAN + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$FUNCTION_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME VALUE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$GRANT_OPTION + RDB$TYPE 2 + RDB$TYPE_NAME ADMIN_OPTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$GRANT_OPTION + RDB$TYPE 1 + RDB$TYPE_NAME GRANT_OPTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$GRANT_OPTION + RDB$TYPE 0 + RDB$TYPE_NAME NONE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$IDENTITY_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME ALWAYS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$IDENTITY_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME BY DEFAULT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$INDEX_INACTIVE + RDB$TYPE 0 + RDB$TYPE_NAME ACTIVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$INDEX_INACTIVE + RDB$TYPE 1 + RDB$TYPE_NAME INACTIVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$LEGACY_FLAG + RDB$TYPE 1 + RDB$TYPE_NAME LEGACY_STYLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$LEGACY_FLAG + RDB$TYPE 0 + RDB$TYPE_NAME NEW_STYLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$MAP_TO_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME ROLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$MAP_TO_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME USER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 3 + RDB$TYPE_NAME BY_ISC_DESCRIPTOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 1 + RDB$TYPE_NAME BY_REFERENCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 5 + RDB$TYPE_NAME BY_REFERENCE_WITH_NULL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 4 + RDB$TYPE_NAME BY_SCALAR_ARRAY_DESCRIPTOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 0 + RDB$TYPE_NAME BY_VALUE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 2 + RDB$TYPE_NAME BY_VMS_DESCRIPTOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 16 + RDB$TYPE_NAME BLOB_FILTER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 11 + RDB$TYPE_NAME CHARACTER_SET + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 17 + RDB$TYPE_NAME COLLATION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 3 + RDB$TYPE_NAME COMPUTED_FIELD + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 7 + RDB$TYPE_NAME EXCEPTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 6 + RDB$TYPE_NAME EXPRESSION_INDEX + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 9 + RDB$TYPE_NAME FIELD + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 14 + RDB$TYPE_NAME GENERATOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 10 + RDB$TYPE_NAME INDEX + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 18 + RDB$TYPE_NAME PACKAGE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 19 + RDB$TYPE_NAME PACKAGE BODY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 5 + RDB$TYPE_NAME PROCEDURE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME RELATION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 13 + RDB$TYPE_NAME ROLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME TRIGGER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 15 + RDB$TYPE_NAME UDF + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 8 + RDB$TYPE_NAME USER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 12 + RDB$TYPE_NAME USER_GROUP + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 4 + RDB$TYPE_NAME VALIDATION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME VIEW + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 8 + RDB$TYPE_NAME BLOB + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 5 + RDB$TYPE_NAME DATA + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 9 + RDB$TYPE_NAME GENERATOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME HEADER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 7 + RDB$TYPE_NAME INDEX_BUCKET + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 6 + RDB$TYPE_NAME INDEX_ROOT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME PAGE_INVENTORY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 4 + RDB$TYPE_NAME POINTER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 10 + RDB$TYPE_NAME SCN_INVENTORY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 3 + RDB$TYPE_NAME TRANSACTION_INVENTORY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PARAMETER_MECHANISM + RDB$TYPE 0 + RDB$TYPE_NAME NORMAL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PARAMETER_MECHANISM + RDB$TYPE 1 + RDB$TYPE_NAME TYPE OF + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PARAMETER_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME INPUT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PARAMETER_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME OUTPUT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PRIVATE_FLAG + RDB$TYPE 1 + RDB$TYPE_NAME PRIVATE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PRIVATE_FLAG + RDB$TYPE 0 + RDB$TYPE_NAME PUBLIC + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PROCEDURE_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME EXECUTABLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PROCEDURE_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME LEGACY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$PROCEDURE_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME SELECTABLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME EXTERNAL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 5 + RDB$TYPE_NAME GLOBAL_TEMPORARY_DELETE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 4 + RDB$TYPE_NAME GLOBAL_TEMPORARY_PRESERVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME PERSISTENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME VIEW + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 3 + RDB$TYPE_NAME VIRTUAL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 3 + RDB$TYPE_NAME CHECK_CONSTRAINT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 6 + RDB$TYPE_NAME IDENTITY_GENERATOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 2 + RDB$TYPE_NAME QLI + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 4 + RDB$TYPE_NAME REFERENTIAL_CONSTRAINT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 1 + RDB$TYPE_NAME SYSTEM + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 0 + RDB$TYPE_NAME USER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 5 + RDB$TYPE_NAME VIEW_CHECK + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 17 + RDB$TYPE_NAME ACCESS_ANY_OBJECT_IN_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 8 + RDB$TYPE_NAME ACCESS_SHUTDOWN_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 15 + RDB$TYPE_NAME CHANGE_HEADER_SETTINGS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 19 + RDB$TYPE_NAME CHANGE_MAPPING_RULES + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 5 + RDB$TYPE_NAME CHANGE_SHUTDOWN_MODE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 9 + RDB$TYPE_NAME CREATE_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 23 + RDB$TYPE_NAME CREATE_PRIVILEGED_ROLES + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 3 + RDB$TYPE_NAME CREATE_USER_TYPES + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 10 + RDB$TYPE_NAME DROP_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 24 + RDB$TYPE_NAME GET_DBCRYPT_INFO + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 22 + RDB$TYPE_NAME GRANT_REVOKE_ANY_DDL_RIGHT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 21 + RDB$TYPE_NAME GRANT_REVOKE_ON_ANY_OBJECT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 14 + RDB$TYPE_NAME IGNORE_DB_TRIGGERS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 18 + RDB$TYPE_NAME MODIFY_ANY_OBJECT_IN_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 25 + RDB$TYPE_NAME MODIFY_EXT_CONN_POOL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 7 + RDB$TYPE_NAME MONITOR_ANY_ATTACHMENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 2 + RDB$TYPE_NAME READ_RAW_PAGES + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 26 + RDB$TYPE_NAME REPLICATE_INTO_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 16 + RDB$TYPE_NAME SELECT_ANY_OBJECT_IN_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 6 + RDB$TYPE_NAME TRACE_ANY_ATTACHMENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 1 + RDB$TYPE_NAME USER_MANAGEMENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 11 + RDB$TYPE_NAME USE_GBAK_UTILITY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 13 + RDB$TYPE_NAME USE_GFIX_UTILITY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 20 + RDB$TYPE_NAME USE_GRANTED_BY_CLAUSE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 12 + RDB$TYPE_NAME USE_GSTAT_UTILITY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 4 + RDB$TYPE_NAME USE_NBACKUP_UTILITY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRANSACTION_STATE + RDB$TYPE 2 + RDB$TYPE_NAME COMMITTED + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRANSACTION_STATE + RDB$TYPE 1 + RDB$TYPE_NAME LIMBO + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRANSACTION_STATE + RDB$TYPE 3 + RDB$TYPE_NAME ROLLED_BACK + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_INACTIVE + RDB$TYPE 0 + RDB$TYPE_NAME ACTIVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_INACTIVE + RDB$TYPE 1 + RDB$TYPE_NAME INACTIVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 8192 + RDB$TYPE_NAME CONNECT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 8193 + RDB$TYPE_NAME DISCONNECT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 6 + RDB$TYPE_NAME POST_ERASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 4 + RDB$TYPE_NAME POST_MODIFY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME POST_STORE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 5 + RDB$TYPE_NAME PRE_ERASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 3 + RDB$TYPE_NAME PRE_MODIFY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME PRE_STORE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 8195 + RDB$TYPE_NAME TRANSACTION_COMMIT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 8196 + RDB$TYPE_NAME TRANSACTION_ROLLBACK + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 8194 + RDB$TYPE_NAME TRANSACTION_START + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$UNIQUE_FLAG + RDB$TYPE 0 + RDB$TYPE_NAME NON_UNIQUE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$FIELD_NAME RDB$UNIQUE_FLAG + RDB$TYPE 1 + RDB$TYPE_NAME UNIQUE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + Records affected: 293 + Are ordered columns unique ? 1 + Records affected: 1 """ -@pytest.mark.version('>=4.0') +@pytest.mark.version('>=4.0,<5.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout + +# version: 5.0 +# resources: None + +substitutions_3 = [] + +init_script_3 = """""" + +db_3 = db_factory(sql_dialect=3, init=init_script_3) + +test_script_3 = """ + set list on; + + -- Query for check whether fields list of table was changed: + select rf.rdb$field_name + from rdb$relation_fields rf + where rf.rdb$relation_name = upper('rdb$relations') + order by rf.rdb$field_name; + + set count on; + set blob all; + select * from rdb$types order by rdb$field_name, rdb$type_name; + select iif(count(distinct rdb$field_name || rdb$type_name) = count(*), 1, 0) as "Are ordered columns unique ?" from rdb$types; +""" + +act_3 = isql_act('db_3', test_script_3, substitutions=substitutions_3) + +expected_stdout_3 = """ + + RDB$FIELD_NAME RDB$DBKEY_LENGTH + + RDB$FIELD_NAME RDB$DEFAULT_CLASS + + RDB$FIELD_NAME RDB$DESCRIPTION + + RDB$FIELD_NAME RDB$EXTERNAL_DESCRIPTION + + RDB$FIELD_NAME RDB$EXTERNAL_FILE + + RDB$FIELD_NAME RDB$FIELD_ID + + RDB$FIELD_NAME RDB$FLAGS + + RDB$FIELD_NAME RDB$FORMAT + + RDB$FIELD_NAME RDB$OWNER_NAME + + RDB$FIELD_NAME RDB$RELATION_ID + + RDB$FIELD_NAME RDB$RELATION_NAME + + RDB$FIELD_NAME RDB$RELATION_TYPE + + RDB$FIELD_NAME RDB$RUNTIME + + RDB$FIELD_NAME RDB$SECURITY_CLASS + + RDB$FIELD_NAME RDB$SQL_SECURITY + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + + RDB$FIELD_NAME RDB$VIEW_BLR + + RDB$FIELD_NAME RDB$VIEW_SOURCE + + + + RDB$FIELD_NAME MON$BACKUP_STATE + RDB$TYPE 2 + RDB$TYPE_NAME MERGE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$BACKUP_STATE + RDB$TYPE 0 + RDB$TYPE_NAME NORMAL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$BACKUP_STATE + RDB$TYPE 1 + RDB$TYPE_NAME STALLED + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$CRYPT_STATE + RDB$TYPE 2 + RDB$TYPE_NAME DECRYPT IN PROGRESS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$CRYPT_STATE + RDB$TYPE 3 + RDB$TYPE_NAME ENCRYPT IN PROGRESS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$CRYPT_STATE + RDB$TYPE 1 + RDB$TYPE_NAME ENCRYPTED + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$CRYPT_STATE + RDB$TYPE 0 + RDB$TYPE_NAME NOT ENCRYPTED + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$ISOLATION_MODE + RDB$TYPE 1 + RDB$TYPE_NAME CONCURRENCY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$ISOLATION_MODE + RDB$TYPE 0 + RDB$TYPE_NAME CONSISTENCY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$ISOLATION_MODE + RDB$TYPE 3 + RDB$TYPE_NAME READ_COMMITTED_NO_VERSION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$ISOLATION_MODE + RDB$TYPE 4 + RDB$TYPE_NAME READ_COMMITTED_READ_CONSISTENCY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$ISOLATION_MODE + RDB$TYPE 2 + RDB$TYPE_NAME READ_COMMITTED_VERSION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$REPLICA_MODE + RDB$TYPE 0 + RDB$TYPE_NAME NONE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$REPLICA_MODE + RDB$TYPE 1 + RDB$TYPE_NAME READ-ONLY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$REPLICA_MODE + RDB$TYPE 2 + RDB$TYPE_NAME READ-WRITE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$SHUTDOWN_MODE + RDB$TYPE 3 + RDB$TYPE_NAME FULL_SHUTDOWN + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$SHUTDOWN_MODE + RDB$TYPE 1 + RDB$TYPE_NAME MULTI_USER_SHUTDOWN + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$SHUTDOWN_MODE + RDB$TYPE 0 + RDB$TYPE_NAME ONLINE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$SHUTDOWN_MODE + RDB$TYPE 2 + RDB$TYPE_NAME SINGLE_USER_SHUTDOWN + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$STATE + RDB$TYPE 1 + RDB$TYPE_NAME ACTIVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$STATE + RDB$TYPE 0 + RDB$TYPE_NAME IDLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$STATE + RDB$TYPE 2 + RDB$TYPE_NAME STALLED + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$STAT_GROUP + RDB$TYPE 1 + RDB$TYPE_NAME ATTACHMENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$STAT_GROUP + RDB$TYPE 4 + RDB$TYPE_NAME CALL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$STAT_GROUP + RDB$TYPE 0 + RDB$TYPE_NAME DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$STAT_GROUP + RDB$TYPE 3 + RDB$TYPE_NAME STATEMENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME MON$STAT_GROUP + RDB$TYPE 2 + RDB$TYPE_NAME TRANSACTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 21 + RDB$TYPE_NAME ANSI + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 2 + RDB$TYPE_NAME ASCII + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 2 + RDB$TYPE_NAME ASCII7 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 56 + RDB$TYPE_NAME BIG5 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 56 + RDB$TYPE_NAME BIG_5 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 1 + RDB$TYPE_NAME BINARY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 68 + RDB$TYPE_NAME CP943C + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 50 + RDB$TYPE_NAME CYRL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 10 + RDB$TYPE_NAME DOS437 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 9 + RDB$TYPE_NAME DOS737 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 15 + RDB$TYPE_NAME DOS775 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 11 + RDB$TYPE_NAME DOS850 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 45 + RDB$TYPE_NAME DOS852 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 46 + RDB$TYPE_NAME DOS857 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 16 + RDB$TYPE_NAME DOS858 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 13 + RDB$TYPE_NAME DOS860 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 47 + RDB$TYPE_NAME DOS861 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 17 + RDB$TYPE_NAME DOS862 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 14 + RDB$TYPE_NAME DOS863 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 18 + RDB$TYPE_NAME DOS864 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 12 + RDB$TYPE_NAME DOS865 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 48 + RDB$TYPE_NAME DOS866 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 49 + RDB$TYPE_NAME DOS869 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 10 + RDB$TYPE_NAME DOS_437 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 9 + RDB$TYPE_NAME DOS_737 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 15 + RDB$TYPE_NAME DOS_775 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 11 + RDB$TYPE_NAME DOS_850 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 45 + RDB$TYPE_NAME DOS_852 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 46 + RDB$TYPE_NAME DOS_857 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 16 + RDB$TYPE_NAME DOS_858 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 13 + RDB$TYPE_NAME DOS_860 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 47 + RDB$TYPE_NAME DOS_861 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 17 + RDB$TYPE_NAME DOS_862 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 14 + RDB$TYPE_NAME DOS_863 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 18 + RDB$TYPE_NAME DOS_864 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 12 + RDB$TYPE_NAME DOS_865 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 48 + RDB$TYPE_NAME DOS_866 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 49 + RDB$TYPE_NAME DOS_869 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 57 + RDB$TYPE_NAME DOS_936 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 44 + RDB$TYPE_NAME DOS_949 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 56 + RDB$TYPE_NAME DOS_950 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 6 + RDB$TYPE_NAME EUCJ + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 6 + RDB$TYPE_NAME EUCJ_0208 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 69 + RDB$TYPE_NAME GB18030 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 57 + RDB$TYPE_NAME GB2312 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 67 + RDB$TYPE_NAME GBK + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 57 + RDB$TYPE_NAME GB_2312 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 40 + RDB$TYPE_NAME ISO-8859-13 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 22 + RDB$TYPE_NAME ISO-8859-2 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 23 + RDB$TYPE_NAME ISO-8859-3 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 34 + RDB$TYPE_NAME ISO-8859-4 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 35 + RDB$TYPE_NAME ISO-8859-5 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 36 + RDB$TYPE_NAME ISO-8859-6 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 37 + RDB$TYPE_NAME ISO-8859-7 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 38 + RDB$TYPE_NAME ISO-8859-8 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 39 + RDB$TYPE_NAME ISO-8859-9 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 21 + RDB$TYPE_NAME ISO88591 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 40 + RDB$TYPE_NAME ISO885913 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 22 + RDB$TYPE_NAME ISO88592 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 23 + RDB$TYPE_NAME ISO88593 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 34 + RDB$TYPE_NAME ISO88594 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 35 + RDB$TYPE_NAME ISO88595 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 36 + RDB$TYPE_NAME ISO88596 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 37 + RDB$TYPE_NAME ISO88597 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 38 + RDB$TYPE_NAME ISO88598 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 39 + RDB$TYPE_NAME ISO88599 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 21 + RDB$TYPE_NAME ISO8859_1 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 40 + RDB$TYPE_NAME ISO8859_13 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 22 + RDB$TYPE_NAME ISO8859_2 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 23 + RDB$TYPE_NAME ISO8859_3 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 34 + RDB$TYPE_NAME ISO8859_4 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 35 + RDB$TYPE_NAME ISO8859_5 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 36 + RDB$TYPE_NAME ISO8859_6 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 37 + RDB$TYPE_NAME ISO8859_7 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 38 + RDB$TYPE_NAME ISO8859_8 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 39 + RDB$TYPE_NAME ISO8859_9 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 63 + RDB$TYPE_NAME KOI8R + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 64 + RDB$TYPE_NAME KOI8U + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 44 + RDB$TYPE_NAME KSC5601 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 44 + RDB$TYPE_NAME KSC_5601 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 21 + RDB$TYPE_NAME LATIN1 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 22 + RDB$TYPE_NAME LATIN2 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 23 + RDB$TYPE_NAME LATIN3 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 34 + RDB$TYPE_NAME LATIN4 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 39 + RDB$TYPE_NAME LATIN5 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 40 + RDB$TYPE_NAME LATIN7 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 19 + RDB$TYPE_NAME NEXT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 0 + RDB$TYPE_NAME NONE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 1 + RDB$TYPE_NAME OCTETS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 5 + RDB$TYPE_NAME SJIS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 5 + RDB$TYPE_NAME SJIS_0208 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 3 + RDB$TYPE_NAME SQL_TEXT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 66 + RDB$TYPE_NAME TIS620 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 3 + RDB$TYPE_NAME UNICODE_FSS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 2 + RDB$TYPE_NAME USASCII + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 4 + RDB$TYPE_NAME UTF-8 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 4 + RDB$TYPE_NAME UTF8 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 3 + RDB$TYPE_NAME UTF_FSS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 51 + RDB$TYPE_NAME WIN1250 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 52 + RDB$TYPE_NAME WIN1251 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 53 + RDB$TYPE_NAME WIN1252 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 54 + RDB$TYPE_NAME WIN1253 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 55 + RDB$TYPE_NAME WIN1254 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 58 + RDB$TYPE_NAME WIN1255 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 59 + RDB$TYPE_NAME WIN1256 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 60 + RDB$TYPE_NAME WIN1257 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 65 + RDB$TYPE_NAME WIN1258 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 51 + RDB$TYPE_NAME WIN_1250 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 52 + RDB$TYPE_NAME WIN_1251 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 53 + RDB$TYPE_NAME WIN_1252 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 54 + RDB$TYPE_NAME WIN_1253 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 55 + RDB$TYPE_NAME WIN_1254 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 58 + RDB$TYPE_NAME WIN_1255 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 59 + RDB$TYPE_NAME WIN_1256 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 60 + RDB$TYPE_NAME WIN_1257 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 65 + RDB$TYPE_NAME WIN_1258 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 57 + RDB$TYPE_NAME WIN_936 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 44 + RDB$TYPE_NAME WIN_949 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$CHARACTER_SET_NAME + RDB$TYPE 56 + RDB$TYPE_NAME WIN_950 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$DETERMINISTIC_FLAG + RDB$TYPE 1 + RDB$TYPE_NAME DETERMINISTIC + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$DETERMINISTIC_FLAG + RDB$TYPE 0 + RDB$TYPE_NAME NON_DETERMINISTIC + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 3 + RDB$TYPE_NAME ACL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME BINARY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME BLR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 9 + RDB$TYPE_NAME DEBUG_INFORMATION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 8 + RDB$TYPE_NAME EXTERNAL_FILE_DESCRIPTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 6 + RDB$TYPE_NAME FORMAT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 4 + RDB$TYPE_NAME RANGES + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 5 + RDB$TYPE_NAME SUMMARY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME TEXT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_SUB_TYPE + RDB$TYPE 7 + RDB$TYPE_NAME TRANSACTION_DESCRIPTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 261 + RDB$TYPE_NAME BLOB + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 45 + RDB$TYPE_NAME BLOB_ID + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 23 + RDB$TYPE_NAME BOOLEAN + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 40 + RDB$TYPE_NAME CSTRING + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 12 + RDB$TYPE_NAME DATE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 24 + RDB$TYPE_NAME DECFLOAT(16) + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 25 + RDB$TYPE_NAME DECFLOAT(34) + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 27 + RDB$TYPE_NAME DOUBLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 10 + RDB$TYPE_NAME FLOAT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 26 + RDB$TYPE_NAME INT128 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 16 + RDB$TYPE_NAME INT64 + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 8 + RDB$TYPE_NAME LONG + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 9 + RDB$TYPE_NAME QUAD + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 7 + RDB$TYPE_NAME SHORT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 14 + RDB$TYPE_NAME TEXT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 13 + RDB$TYPE_NAME TIME + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 28 + RDB$TYPE_NAME TIME WITH TIME ZONE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 35 + RDB$TYPE_NAME TIMESTAMP + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 29 + RDB$TYPE_NAME TIMESTAMP WITH TIME ZONE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FIELD_TYPE + RDB$TYPE 37 + RDB$TYPE_NAME VARYING + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FUNCTION_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME BOOLEAN + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$FUNCTION_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME VALUE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$GRANT_OPTION + RDB$TYPE 2 + RDB$TYPE_NAME ADMIN_OPTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$GRANT_OPTION + RDB$TYPE 1 + RDB$TYPE_NAME GRANT_OPTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$GRANT_OPTION + RDB$TYPE 0 + RDB$TYPE_NAME NONE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$IDENTITY_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME ALWAYS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$IDENTITY_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME BY DEFAULT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$INDEX_INACTIVE + RDB$TYPE 0 + RDB$TYPE_NAME ACTIVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$INDEX_INACTIVE + RDB$TYPE 1 + RDB$TYPE_NAME INACTIVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$LEGACY_FLAG + RDB$TYPE 1 + RDB$TYPE_NAME LEGACY_STYLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$LEGACY_FLAG + RDB$TYPE 0 + RDB$TYPE_NAME NEW_STYLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$MAP_TO_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME ROLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$MAP_TO_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME USER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 3 + RDB$TYPE_NAME BY_ISC_DESCRIPTOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 1 + RDB$TYPE_NAME BY_REFERENCE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 5 + RDB$TYPE_NAME BY_REFERENCE_WITH_NULL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 4 + RDB$TYPE_NAME BY_SCALAR_ARRAY_DESCRIPTOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 0 + RDB$TYPE_NAME BY_VALUE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$MECHANISM + RDB$TYPE 2 + RDB$TYPE_NAME BY_VMS_DESCRIPTOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 16 + RDB$TYPE_NAME BLOB_FILTER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 11 + RDB$TYPE_NAME CHARACTER_SET + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 17 + RDB$TYPE_NAME COLLATION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 3 + RDB$TYPE_NAME COMPUTED_FIELD + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 7 + RDB$TYPE_NAME EXCEPTION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 6 + RDB$TYPE_NAME EXPRESSION_INDEX + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 9 + RDB$TYPE_NAME FIELD + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 14 + RDB$TYPE_NAME GENERATOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 10 + RDB$TYPE_NAME INDEX + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 18 + RDB$TYPE_NAME PACKAGE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 19 + RDB$TYPE_NAME PACKAGE BODY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 5 + RDB$TYPE_NAME PROCEDURE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME RELATION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 13 + RDB$TYPE_NAME ROLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME TRIGGER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 15 + RDB$TYPE_NAME UDF + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 8 + RDB$TYPE_NAME USER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 12 + RDB$TYPE_NAME USER_GROUP + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 4 + RDB$TYPE_NAME VALIDATION + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$OBJECT_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME VIEW + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 8 + RDB$TYPE_NAME BLOB + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 5 + RDB$TYPE_NAME DATA + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 9 + RDB$TYPE_NAME GENERATOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME HEADER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 7 + RDB$TYPE_NAME INDEX_BUCKET + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 6 + RDB$TYPE_NAME INDEX_ROOT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME PAGE_INVENTORY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 4 + RDB$TYPE_NAME POINTER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 10 + RDB$TYPE_NAME SCN_INVENTORY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PAGE_TYPE + RDB$TYPE 3 + RDB$TYPE_NAME TRANSACTION_INVENTORY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PARAMETER_MECHANISM + RDB$TYPE 0 + RDB$TYPE_NAME NORMAL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PARAMETER_MECHANISM + RDB$TYPE 1 + RDB$TYPE_NAME TYPE OF + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PARAMETER_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME INPUT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PARAMETER_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME OUTPUT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PRIVATE_FLAG + RDB$TYPE 1 + RDB$TYPE_NAME PRIVATE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PRIVATE_FLAG + RDB$TYPE 0 + RDB$TYPE_NAME PUBLIC + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PROCEDURE_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME EXECUTABLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PROCEDURE_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME LEGACY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$PROCEDURE_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME SELECTABLE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME EXTERNAL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 5 + RDB$TYPE_NAME GLOBAL_TEMPORARY_DELETE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 4 + RDB$TYPE_NAME GLOBAL_TEMPORARY_PRESERVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 0 + RDB$TYPE_NAME PERSISTENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME VIEW + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$RELATION_TYPE + RDB$TYPE 3 + RDB$TYPE_NAME VIRTUAL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 3 + RDB$TYPE_NAME CHECK_CONSTRAINT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 6 + RDB$TYPE_NAME IDENTITY_GENERATOR + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 2 + RDB$TYPE_NAME QLI + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 4 + RDB$TYPE_NAME REFERENTIAL_CONSTRAINT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 1 + RDB$TYPE_NAME SYSTEM + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 0 + RDB$TYPE_NAME USER + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_FLAG + RDB$TYPE 5 + RDB$TYPE_NAME VIEW_CHECK + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 17 + RDB$TYPE_NAME ACCESS_ANY_OBJECT_IN_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 8 + RDB$TYPE_NAME ACCESS_SHUTDOWN_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 15 + RDB$TYPE_NAME CHANGE_HEADER_SETTINGS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 19 + RDB$TYPE_NAME CHANGE_MAPPING_RULES + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 5 + RDB$TYPE_NAME CHANGE_SHUTDOWN_MODE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 9 + RDB$TYPE_NAME CREATE_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 23 + RDB$TYPE_NAME CREATE_PRIVILEGED_ROLES + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 3 + RDB$TYPE_NAME CREATE_USER_TYPES + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 10 + RDB$TYPE_NAME DROP_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 24 + RDB$TYPE_NAME GET_DBCRYPT_INFO + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 22 + RDB$TYPE_NAME GRANT_REVOKE_ANY_DDL_RIGHT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 21 + RDB$TYPE_NAME GRANT_REVOKE_ON_ANY_OBJECT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 14 + RDB$TYPE_NAME IGNORE_DB_TRIGGERS + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 18 + RDB$TYPE_NAME MODIFY_ANY_OBJECT_IN_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 25 + RDB$TYPE_NAME MODIFY_EXT_CONN_POOL + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 7 + RDB$TYPE_NAME MONITOR_ANY_ATTACHMENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 2 + RDB$TYPE_NAME READ_RAW_PAGES + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 26 + RDB$TYPE_NAME REPLICATE_INTO_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 16 + RDB$TYPE_NAME SELECT_ANY_OBJECT_IN_DATABASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 6 + RDB$TYPE_NAME TRACE_ANY_ATTACHMENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 1 + RDB$TYPE_NAME USER_MANAGEMENT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 11 + RDB$TYPE_NAME USE_GBAK_UTILITY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 13 + RDB$TYPE_NAME USE_GFIX_UTILITY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 20 + RDB$TYPE_NAME USE_GRANTED_BY_CLAUSE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 12 + RDB$TYPE_NAME USE_GSTAT_UTILITY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$SYSTEM_PRIVILEGES + RDB$TYPE 4 + RDB$TYPE_NAME USE_NBACKUP_UTILITY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRANSACTION_STATE + RDB$TYPE 2 + RDB$TYPE_NAME COMMITTED + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRANSACTION_STATE + RDB$TYPE 1 + RDB$TYPE_NAME LIMBO + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRANSACTION_STATE + RDB$TYPE 3 + RDB$TYPE_NAME ROLLED_BACK + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_INACTIVE + RDB$TYPE 0 + RDB$TYPE_NAME ACTIVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_INACTIVE + RDB$TYPE 1 + RDB$TYPE_NAME INACTIVE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 8192 + RDB$TYPE_NAME CONNECT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 8193 + RDB$TYPE_NAME DISCONNECT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 6 + RDB$TYPE_NAME POST_ERASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 4 + RDB$TYPE_NAME POST_MODIFY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 2 + RDB$TYPE_NAME POST_STORE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 5 + RDB$TYPE_NAME PRE_ERASE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 3 + RDB$TYPE_NAME PRE_MODIFY + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 1 + RDB$TYPE_NAME PRE_STORE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 8195 + RDB$TYPE_NAME TRANSACTION_COMMIT + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 8196 + RDB$TYPE_NAME TRANSACTION_ROLLBACK + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$TRIGGER_TYPE + RDB$TYPE 8194 + RDB$TYPE_NAME TRANSACTION_START + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$UNIQUE_FLAG + RDB$TYPE 0 + RDB$TYPE_NAME NON_UNIQUE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + RDB$FIELD_NAME RDB$UNIQUE_FLAG + RDB$TYPE 1 + RDB$TYPE_NAME UNIQUE + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + + + Records affected: 293 + + Are ordered columns unique ? 1 + + + Records affected: 1 +""" + +@pytest.mark.version('>=5.0') +def test_3(act_3: Action): + act_3.expected_stdout = expected_stdout_3 + act_3.execute() + assert act_3.clean_stdout == act_3.clean_expected_stdout diff --git a/tests/functional/basic/db/test_31.py b/tests/functional/basic/db/test_31.py index 493caaa1..eb5917bd 100644 --- a/tests/functional/basic/db/test_31.py +++ b/tests/functional/basic/db/test_31.py @@ -2,12 +2,17 @@ # # id: functional.basic.db.31 # title: Empty DB - RDB$USER_PRIVILEGES -# decription: -# Check for correct content of RDB$USER_PRIVILEGES in empty database.', +# decription: +# Check for correct content of RDB$USER_PRIVILEGES in empty database. +# Checked on: +# 2.5.9.27152 +# 3.0.8.33468 +# 4.0.0.2491 +# 5.0.0.43 // 21.05.2021: created separate section for this major FB version. # # tracker_id: # min_versions: ['2.5.7'] -# versions: 3.0, 4.0 +# versions: 3.0, 4.0, 5.0 # qmid: import pytest @@ -56,6000 +61,6010 @@ test_script_1 = """ ,0 ) as "Are ordered columns unique ?" from rdb$user_privileges ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ -RDB$FIELD_NAME RDB$FIELD_NAME - -RDB$FIELD_NAME RDB$GRANTOR - -RDB$FIELD_NAME RDB$GRANT_OPTION - -RDB$FIELD_NAME RDB$OBJECT_TYPE - -RDB$FIELD_NAME RDB$PRIVILEGE - -RDB$FIELD_NAME RDB$RELATION_NAME - -RDB$FIELD_NAME RDB$USER - -RDB$FIELD_NAME RDB$USER_TYPE - - - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME MON$ATTACHMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME MON$CALL_STACK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME MON$CONTEXT_VARIABLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME MON$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME MON$IO_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME MON$MEMORY_USAGE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME MON$RECORD_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME MON$STATEMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME MON$TABLE_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME MON$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$BACKUP_HISTORY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$CHARACTER_SETS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$COLLATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$DEPENDENCIES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$EXCEPTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$FIELD_DIMENSIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$FILTERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$FORMATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$FUNCTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$GENERATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$INDEX_SEGMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$INDICES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$LOG_FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$PACKAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$PAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$PROCEDURES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$REF_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$RELATION_FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$ROLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$SECURITY_CLASSES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$TRIGGERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$TRIGGER_MESSAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$TYPES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$USER_PRIVILEGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME RDB$VIEW_RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME SEC$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME SEC$USERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER PUBLIC -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 0 -RDB$RELATION_NAME SEC$USER_ATTRIBUTES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 20 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ASCII -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ASCII -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME BIG_5 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME BIG_5 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME BS_BA -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME CP943C -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME CP943C -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME CP943C_UNICODE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME CS_CZ -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME CYRL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME CYRL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DA_DA -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_CSY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_DAN865 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_DEU437 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_DEU850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_ESP437 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_ESP850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_FIN437 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_FRA437 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_FRA850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_FRC850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_FRC863 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_ITA437 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_ITA850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_NLD437 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_NLD850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_NOR865 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_PLK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_PTB850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_PTG860 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_RUS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_SLO -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_SVE437 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_SVE850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_TRK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_UK437 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_UK850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_US437 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DB_US850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DE_DE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS437 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS437 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS737 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS737 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS775 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS775 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS852 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS852 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS857 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS857 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS858 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS858 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS860 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS860 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS861 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS861 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS862 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS862 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS863 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS863 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS864 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS864 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS865 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS865 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS866 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS866 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS869 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DOS869 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME DU_NL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME EN_UK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME EN_US -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ES_ES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ES_ES_CI_AI -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME EUCJ_0208 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME EUCJ_0208 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME FI_FI -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME FR_CA -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME FR_CA_CI_AI -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME FR_FR -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME FR_FR_CI_AI -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME GB18030 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME GB18030 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME GB18030_UNICODE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME GBK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME GBK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME GBK_UNICODE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME GB_2312 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME GB_2312 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_1 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_1 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_13 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_13 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_2 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_2 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_3 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_3 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_4 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_4 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_5 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_5 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_6 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_6 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_7 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_7 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_8 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_8 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_9 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO8859_9 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO_HUN -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME ISO_PLK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME IS_IS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME IT_IT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME KOI8R -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME KOI8R -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME KOI8R_RU -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME KOI8U -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME KOI8U -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME KOI8U_UA -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME KSC_5601 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME KSC_5601 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME KSC_DICTIONARY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME LT_LT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$ATTACHMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$ATTACHMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$ATTACHMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$ATTACHMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$ATTACHMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$CALL_STACK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$CALL_STACK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$CALL_STACK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$CALL_STACK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$CALL_STACK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$CONTEXT_VARIABLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$CONTEXT_VARIABLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$CONTEXT_VARIABLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$CONTEXT_VARIABLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$CONTEXT_VARIABLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$IO_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$IO_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$IO_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$IO_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$IO_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$MEMORY_USAGE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$MEMORY_USAGE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$MEMORY_USAGE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$MEMORY_USAGE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$MEMORY_USAGE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$RECORD_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$RECORD_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$RECORD_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$RECORD_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$RECORD_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$SEC_DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$STATEMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$STATEMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$STATEMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$STATEMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$STATEMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$TABLE_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$TABLE_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$TABLE_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$TABLE_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$TABLE_STATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME MON$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME NEXT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME NEXT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME NONE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME NONE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME NO_NO -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME NXT_DEU -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME NXT_ESP -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME NXT_FRA -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME NXT_ITA -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME NXT_US -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME OCTETS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME OCTETS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PDOX_ASCII -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PDOX_CSY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PDOX_CYRL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PDOX_HUN -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PDOX_INTL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PDOX_ISL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PDOX_NORDAN4 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PDOX_PLK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PDOX_SLO -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PDOX_SWEDFIN -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PT_BR -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PT_PT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_CSY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_CYRL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_GREEK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_HUN -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_HUNDC -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_INTL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_INTL850 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_NORDAN4 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_PLK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_SLOV -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_SPAN -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_SWEDFIN -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME PXW_TURK -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ACL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ARGUMENT_MECHANISM -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ARGUMENT_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ATTACHMENT_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$AUTH_METHOD -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$BACKUP_HISTORY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$BACKUP_HISTORY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 14 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$BACKUP_HISTORY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$BACKUP_HISTORY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$BACKUP_HISTORY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$BACKUP_HISTORY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$BACKUP_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$BACKUP_LEVEL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$BACKUP_STATE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$BOOLEAN -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$BOUND -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CALL_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHARACTER_SETS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHARACTER_SETS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHARACTER_SETS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHARACTER_SETS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHARACTER_SETS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHARACTER_SET_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHARACTER_SET_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CLIENT_VERSION -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$COLLATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$COLLATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$COLLATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$COLLATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$COLLATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$COLLATION_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$COLLATION_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CONSTRAINT_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CONSTRAINT_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 14 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CONSTRAINT_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CONTEXT_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CONTEXT_VAR_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$CONTEXT_VAR_VALUE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$COUNTER -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DATABASE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DBKEY_LENGTH -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DEBUG_INFO -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DEFERRABLE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DEPENDENCIES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DEPENDENCIES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DEPENDENCIES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DEPENDENCIES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DEPENDENCIES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DESCRIPTION -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DESCRIPTOR -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DIMENSION -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$DIMENSIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$EDIT_STRING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ENGINE_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$EXCEPTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$EXCEPTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 14 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$EXCEPTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$EXCEPTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$EXCEPTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$EXCEPTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$EXCEPTION_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$EXCEPTION_NUMBER -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$EXTERNAL_DESCRIPTION -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$EXTERNAL_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_DIMENSIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_DIMENSIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_DIMENSIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_DIMENSIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_DIMENSIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_LENGTH -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 14 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_POSITION -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_PRECISION -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_SCALE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_SUB_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FIELD_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILE_FLAGS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILE_LENGTH -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILE_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILE_NAME2 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILE_PARTITIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILE_P_OFFSET -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILE_SEQUENCE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILE_START -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILTERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILTERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILTERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILTERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FILTERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FORMAT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FORMATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FORMATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FORMATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FORMATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FORMATS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 14 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTION_BLR -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTION_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTION_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$FUNCTION_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERATOR_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERATOR_INCREMENT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERATOR_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERATOR_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 14 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERATOR_VALUE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERIC_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GENERIC_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$GUID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$HOST_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$IDENTITY_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDEX_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDEX_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDEX_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 14 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDEX_SEGMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDEX_SEGMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDEX_SEGMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDEX_SEGMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDEX_SEGMENTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDICES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDICES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDICES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDICES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$INDICES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ISOLATION_MODE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$LINGER -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$LOCK_TIMEOUT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$LOG_FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$LOG_FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$LOG_FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$LOG_FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$LOG_FILES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$MAP_DB -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$MAP_FROM -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$MAP_FROM_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$MAP_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$MAP_TO -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$MAP_USING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$MATCH_OPTION -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$MECHANISM -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$MESSAGE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$MESSAGE_NUMBER -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$NULL_FLAG -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$NUMBER_OF_CHARACTERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$OBJECT_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ODS_NUMBER -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$OS_USER -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PACKAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PACKAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PACKAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PACKAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PACKAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PACKAGE_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PAGE_BUFFERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PAGE_NUMBER -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PAGE_SEQUENCE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PAGE_SIZE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PAGE_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PARAMETER_MECHANISM -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PARAMETER_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PARAMETER_NUMBER -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PARAMETER_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PLAN -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PLUGIN -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PRIVILEGE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 14 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURE_BLR -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURE_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURE_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$PROCEDURE_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$QUERY_HEADER -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$REF_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$REF_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$REF_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$REF_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$REF_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_FIELDS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RELATION_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$REMOTE_ADDRESS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$REMOTE_PROTOCOL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$REMOTE_VERSION -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ROLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ROLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ROLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ROLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$ROLES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RULE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$RUNTIME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SCN -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SECURITY_CLASS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SECURITY_CLASS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 14 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SECURITY_CLASSES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SECURITY_CLASSES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SECURITY_CLASSES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SECURITY_CLASSES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SECURITY_CLASSES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SEGMENT_COUNT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SEGMENT_LENGTH -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SHADOW_NUMBER -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SHUTDOWN_MODE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SOURCE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SOURCE_INFO -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SPECIFIC_ATTRIBUTES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SQL_DIALECT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$STATE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$STATEMENT_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$STATISTICS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$STAT_GROUP -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$STAT_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SWEEP_INTERVAL -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SYSTEM_FLAG -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$SYSTEM_NULLFLAG -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TIMESTAMP -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRANSACTIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRANSACTION_DESCRIPTION -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRANSACTION_ID -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRANSACTION_STATE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGER_BLR -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGER_MESSAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGER_MESSAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGER_MESSAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGER_MESSAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGER_MESSAGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGER_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGER_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 14 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGER_SEQUENCE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TRIGGER_TYPE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TYPES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TYPES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TYPES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TYPES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TYPES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$TYPE_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$USER -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$USER_PRIVILEGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$USER_PRIVILEGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$USER_PRIVILEGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$USER_PRIVILEGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$USER_PRIVILEGES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$VALIDATION_BLR -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$VALUE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$VIEW_BLR -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$VIEW_CONTEXT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$VIEW_RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$VIEW_RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$VIEW_RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$VIEW_RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME RDB$VIEW_RELATIONS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$DB_CREATORS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$KEY -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$NAME_PART -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$USERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$USERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$USERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$USERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$USERS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE D -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$USER_ATTRIBUTES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE I -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$USER_ATTRIBUTES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE R -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$USER_ATTRIBUTES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE S -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$USER_ATTRIBUTES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE U -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$USER_ATTRIBUTES -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 0 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$USER_NAME -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SEC$VALUE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 9 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SJIS_0208 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SJIS_0208 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SQL$DEFAULT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 14 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME SV_SV -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME TIS620 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME TIS620 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME TIS620_UNICODE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME UCS_BASIC -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME UNICODE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME UNICODE_CI -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME UNICODE_CI_AI -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME UNICODE_FSS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME UNICODE_FSS -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME UTF8 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME UTF8 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1250 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1250 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1251 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1251 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1251_UA -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1252 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1252 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1253 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1253 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1254 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1254 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1255 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1255 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1256 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1256 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1257 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1257 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1257_EE -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1257_LT -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1257_LV -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1258 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 11 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN1258 -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN_CZ -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN_CZ_CI_AI -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - -RDB$USER SYSDBA -RDB$GRANTOR -RDB$PRIVILEGE G -RDB$GRANT_OPTION 1 -RDB$RELATION_NAME WIN_PTBR -RDB$FIELD_NAME -RDB$USER_TYPE 8 -RDB$OBJECT_TYPE 17 - - -Records affected: 663 - -Are ordered columns unique ? 1 + + RDB$FIELD_NAME RDB$FIELD_NAME + + RDB$FIELD_NAME RDB$GRANTOR + + RDB$FIELD_NAME RDB$GRANT_OPTION + + RDB$FIELD_NAME RDB$OBJECT_TYPE + + RDB$FIELD_NAME RDB$PRIVILEGE + + RDB$FIELD_NAME RDB$RELATION_NAME + + RDB$FIELD_NAME RDB$USER + + RDB$FIELD_NAME RDB$USER_TYPE + + + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 20 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ASCII + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ASCII + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME BIG_5 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME BIG_5 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME BS_BA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CP943C + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CP943C + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CP943C_UNICODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CS_CZ + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CYRL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CYRL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DA_DA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_CSY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_DAN865 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_DEU437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_DEU850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_ESP437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_ESP850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_FIN437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_FRA437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_FRA850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_FRC850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_FRC863 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_ITA437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_ITA850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_NLD437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_NLD850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_NOR865 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_PLK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_PTB850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_PTG860 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_RUS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_SLO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_SVE437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_SVE850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_TRK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_UK437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_UK850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_US437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_US850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DE_DE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS737 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS737 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS775 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS775 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS852 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS852 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS857 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS857 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS858 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS858 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS860 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS860 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS861 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS861 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS862 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS862 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS863 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS863 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS864 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS864 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS865 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS865 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS866 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS866 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS869 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS869 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DU_NL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME EN_UK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME EN_US + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ES_ES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ES_ES_CI_AI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME EUCJ_0208 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME EUCJ_0208 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME FI_FI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME FR_CA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME FR_CA_CI_AI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME FR_FR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME FR_FR_CI_AI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GB18030 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GB18030 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GB18030_UNICODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GBK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GBK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GBK_UNICODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GB_2312 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GB_2312 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_1 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_1 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_13 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_13 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_2 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_2 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_3 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_3 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_4 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_4 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_5 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_5 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_6 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_6 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_7 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_7 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_8 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_8 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_9 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_9 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO_HUN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO_PLK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME IS_IS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME IT_IT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8R + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8R + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8R_RU + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8U + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8U + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8U_UA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KSC_5601 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KSC_5601 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KSC_DICTIONARY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME LT_LT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$SEC_DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NEXT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NEXT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NONE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NONE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NO_NO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NXT_DEU + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NXT_ESP + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NXT_FRA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NXT_ITA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NXT_US + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME OCTETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME OCTETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_ASCII + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_CSY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_CYRL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_HUN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_INTL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_ISL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_NORDAN4 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_PLK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_SLO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_SWEDFIN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PT_BR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PT_PT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_CSY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_CYRL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_GREEK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_HUN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_HUNDC + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_INTL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_INTL850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_NORDAN4 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_PLK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_SLOV + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_SPAN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_SWEDFIN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_TURK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ACL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ADMIN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 13 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ARGUMENT_MECHANISM + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ARGUMENT_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ATTACHMENT_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_METHOD + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_LEVEL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_STATE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BOOLEAN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BOUND + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CALL_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SET_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SET_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CLIENT_VERSION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATION_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATION_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONSTRAINT_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONSTRAINT_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONSTRAINT_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONTEXT_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONTEXT_VAR_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONTEXT_VAR_VALUE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COUNTER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DBKEY_LENGTH + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEBUG_INFO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEFERRABLE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DESCRIPTION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DESCRIPTOR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DIMENSION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EDIT_STRING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ENGINE_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTION_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTION_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXTERNAL_DESCRIPTION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXTERNAL_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_LENGTH + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_POSITION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_PRECISION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_SCALE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_SUB_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_FLAGS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_LENGTH + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_NAME2 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_PARTITIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_P_OFFSET + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_SEQUENCE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_START + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMAT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_BLR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATOR_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATOR_INCREMENT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATOR_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATOR_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATOR_VALUE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERIC_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERIC_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GUID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$HOST_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$IDENTITY_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ISOLATION_MODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LINGER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOCK_TIMEOUT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_DB + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_FROM + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_FROM_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_TO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_USING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MATCH_OPTION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MECHANISM + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MESSAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MESSAGE_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$NULL_FLAG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$NUMBER_OF_CHARACTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$OBJECT_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ODS_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$OS_USER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGE_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGE_BUFFERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGE_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGE_SEQUENCE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGE_SIZE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGE_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PARAMETER_MECHANISM + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PARAMETER_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PARAMETER_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PARAMETER_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PLAN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PLUGIN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PRIVILEGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_BLR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$QUERY_HEADER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REMOTE_ADDRESS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REMOTE_PROTOCOL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REMOTE_VERSION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RULE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RUNTIME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SCN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SEGMENT_COUNT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SEGMENT_LENGTH + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SHADOW_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SHUTDOWN_MODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SOURCE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SOURCE_INFO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SPECIFIC_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SQL_DIALECT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$STATE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$STATEMENT_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$STATISTICS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$STAT_GROUP + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$STAT_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SWEEP_INTERVAL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SYSTEM_FLAG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SYSTEM_NULLFLAG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIMESTAMP + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTION_DESCRIPTION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTION_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTION_STATE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_BLR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_SEQUENCE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPE_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VALIDATION_BLR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VALUE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_BLR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_CONTEXT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$KEY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$NAME_PART + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$VALUE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SJIS_0208 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SJIS_0208 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SQL$DEFAULT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SV_SV + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME TIS620 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME TIS620 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME TIS620_UNICODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UCS_BASIC + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UNICODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UNICODE_CI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UNICODE_CI_AI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UNICODE_FSS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UNICODE_FSS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UTF8 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UTF8 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1250 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1250 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1251 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1251 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1251_UA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1252 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1252 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1253 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1253 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1254 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1254 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1255 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1255 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1256 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1256 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1257 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1257 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1257_EE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1257_LT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1257_LV + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1258 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1258 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN_CZ + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN_CZ_CI_AI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN_PTBR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + + Records affected: 664 + + Are ordered columns unique ? 1 """ @@ -6057,7 +6072,7 @@ Are ordered columns unique ? 1 def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -6099,7 +6114,7 @@ test_script_2 = """ ,0 ) as "Are ordered columns unique ?" from rdb$user_privileges ; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -12634,11 +12649,6665 @@ expected_stdout_2 = """ Records affected: 723 Are ordered columns unique ? 1 - """ +""" -@pytest.mark.version('>=4.0') +@pytest.mark.version('>=4.0,<5.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout + +# version: 5.0 +# resources: None + +substitutions_3 = [] + +init_script_3 = """""" + +db_3 = db_factory(sql_dialect=3, init=init_script_3) + +test_script_3 = """ + set list on; + + -- Query for check whether fields list of table was changed: + select rf.rdb$field_name + from rdb$relation_fields rf + where rf.rdb$relation_name = upper('rdb$user_privileges') + order by rf.rdb$field_name; + + set count on; + + select * from rdb$user_privileges t + order by + t.rdb$user + ,coalesce(t.rdb$grantor,'[none]') + ,t.rdb$relation_name + ,t.rdb$privilege + ,t.rdb$grant_option + ,coalesce(t.rdb$field_name, '[none') + ,t.rdb$user_type + ,t.rdb$object_type + ; + set count off; + select iif( + count(*) = + count(distinct rdb$user || coalesce(rdb$grantor,'[none]') || rdb$privilege || rdb$relation_name || rdb$privilege || rdb$grant_option || coalesce(rdb$field_name, '[none') || rdb$user_type || rdb$object_type + ) + ,1 + ,0 + ) as "Are ordered columns unique ?" from rdb$user_privileges + ; +""" + +act_3 = isql_act('db_3', test_script_3, substitutions=substitutions_3) + +expected_stdout_3 = """ + + RDB$FIELD_NAME RDB$FIELD_NAME + + RDB$FIELD_NAME RDB$GRANTOR + + RDB$FIELD_NAME RDB$GRANT_OPTION + + RDB$FIELD_NAME RDB$OBJECT_TYPE + + RDB$FIELD_NAME RDB$PRIVILEGE + + RDB$FIELD_NAME RDB$RELATION_NAME + + RDB$FIELD_NAME RDB$USER + + RDB$FIELD_NAME RDB$USER_TYPE + + + + RDB$USER 22 + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 22 + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 22 + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 22 + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 22 + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 3 + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 3 + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 3 + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 3 + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 3 + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 4 + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 4 + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 4 + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 4 + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER 4 + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 20 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$KEYWORDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$PUBLICATION_TABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TIME_ZONES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER PUBLIC + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 0 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ASCII + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ASCII + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME BIG_5 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME BIG_5 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME BS_BA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CP943C + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CP943C + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CP943C_UNICODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CS_CZ + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CYRL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME CYRL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DA_DA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_CSY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_DAN865 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_DEU437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_DEU850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_ESP437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_ESP850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_FIN437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_FRA437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_FRA850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_FRC850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_FRC863 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_ITA437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_ITA850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_NLD437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_NLD850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_NOR865 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_PLK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_PTB850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_PTG860 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_RUS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_SLO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_SVE437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_SVE850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_TRK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_UK437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_UK850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_US437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DB_US850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DE_DE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS437 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS737 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS737 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS775 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS775 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS852 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS852 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS857 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS857 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS858 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS858 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS860 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS860 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS861 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS861 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS862 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS862 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS863 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS863 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS864 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS864 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS865 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS865 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS866 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS866 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS869 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DOS869 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME DU_NL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME EN_UK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME EN_US + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ES_ES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ES_ES_CI_AI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME EUCJ_0208 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME EUCJ_0208 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME FI_FI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME FR_CA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME FR_CA_CI_AI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME FR_FR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME FR_FR_CI_AI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GB18030 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GB18030 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GB18030_UNICODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GBK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GBK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GBK_UNICODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GB_2312 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME GB_2312 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_1 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_1 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_13 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_13 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_2 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_2 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_3 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_3 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_4 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_4 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_5 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_5 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_6 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_6 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_7 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_7 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_8 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_8 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_9 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO8859_9 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO_HUN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME ISO_PLK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME IS_IS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME IT_IT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8R + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8R + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8R_RU + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8U + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8U + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KOI8U_UA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KSC_5601 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KSC_5601 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME KSC_DICTIONARY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME LT_LT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$ATTACHMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CALL_STACK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$CONTEXT_VARIABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IDLE_TIMEOUT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IDLE_TIMER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$IO_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$MEMORY_USAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$RECORD_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$SEC_DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENT_TIMEOUT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$STATEMENT_TIMER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TABLE_STATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME MON$WIRE_CRYPT_PLUGIN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NEXT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NEXT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NONE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NONE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NO_NO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NXT_DEU + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NXT_ESP + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NXT_FRA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NXT_ITA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME NXT_US + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME OCTETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME OCTETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_ASCII + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_CSY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_CYRL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_HUN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_INTL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_ISL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_NORDAN4 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_PLK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_SLO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PDOX_SWEDFIN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PT_BR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PT_PT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_CSY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_CYRL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_GREEK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_HUN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_HUNDC + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_INTL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_INTL850 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_NORDAN4 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_PLK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_SLOV + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_SPAN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_SWEDFIN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME PXW_TURK + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ACL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE M + RDB$GRANT_OPTION 2 + RDB$RELATION_NAME RDB$ADMIN + RDB$FIELD_NAME D + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 13 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ARGUMENT_MECHANISM + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ARGUMENT_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ATTACHMENT_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$AUTH_METHOD + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_HISTORY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_LEVEL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BACKUP_STATE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BOOLEAN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$BOUND + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CALL_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SETS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SET_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHARACTER_SET_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CHECK_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CLIENT_VERSION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATION_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COLLATION_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONFIG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONFIG_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONFIG_IS_SET + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONFIG_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONFIG_VALUE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONSTRAINT_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONSTRAINT_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONSTRAINT_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONTEXT_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONTEXT_VAR_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CONTEXT_VAR_VALUE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$COUNTER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$CRYPT_STATE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DATABASE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DBKEY_LENGTH + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DBTZ_VERSION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEBUG_INFO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEFERRABLE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DEPENDENCIES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DESCRIPTION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DESCRIPTOR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DIMENSION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EDIT_STRING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ENGINE_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTION_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXCEPTION_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXTERNAL_DESCRIPTION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$EXTERNAL_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_DIMENSIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_LENGTH + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_POSITION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_PRECISION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_SCALE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_SUB_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FIELD_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_FLAGS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_LENGTH + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_NAME2 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_PARTITIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_P_OFFSET + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_SEQUENCE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILE_START + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FILTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMAT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FORMATS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ARGUMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_BLR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$FUNCTION_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATOR_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATOR_INCREMENT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATOR_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATOR_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERATOR_VALUE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERIC_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GENERIC_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$GUID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$HOST_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$IDENTITY_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDEX_SEGMENTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$INDICES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ISOLATION_MODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$KEYWORDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$KEYWORDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$KEYWORDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$KEYWORDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$KEYWORDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$KEYWORD_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$KEYWORD_RESERVED + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LINGER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOCK_TIMEOUT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$LOG_FILES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_DB + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_FROM + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_FROM_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_TO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MAP_USING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MATCH_OPTION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MECHANISM + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MESSAGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$MESSAGE_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$NULL_FLAG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$NUMBER_OF_CHARACTERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$OBJECT_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ODS_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$OS_USER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PACKAGE_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGE_BUFFERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGE_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGE_SEQUENCE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGE_SIZE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PAGE_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PARAMETER_MECHANISM + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PARAMETER_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PARAMETER_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PARAMETER_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PLAN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PLUGIN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PRIVILEGE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_BLR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_PARAMETERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PROCEDURE_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PUBLICATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PUBLICATION_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PUBLICATION_TABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PUBLICATION_TABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PUBLICATION_TABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PUBLICATION_TABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$PUBLICATION_TABLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$QUERY_HEADER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REF_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_CONSTRAINTS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_FIELDS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RELATION_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REMOTE_ADDRESS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REMOTE_PROTOCOL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REMOTE_VERSION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$REPLICA_MODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$ROLES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RULE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$RUNTIME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SCN + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SECURITY_CLASSES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SEGMENT_COUNT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SEGMENT_LENGTH + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SHADOW_NUMBER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SHUTDOWN_MODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SOURCE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SOURCE_INFO + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SPECIFIC_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SQL_DIALECT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SQL_SECURITY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$STATE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$STATEMENT_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$STATISTICS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$STAT_GROUP + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$STAT_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SWEEP_INTERVAL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SYSTEM_FLAG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SYSTEM_NULLFLAG + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$SYSTEM_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIMESTAMP + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIMESTAMP_TZ + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIME_ZONES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIME_ZONES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIME_ZONES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIME_ZONES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIME_ZONES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIME_ZONE_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIME_ZONE_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIME_ZONE_OFFSET + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE X + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TIME_ZONE_UTIL + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 18 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTION_DESCRIPTION + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTION_ID + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRANSACTION_STATE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_BLR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_MESSAGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_SEQUENCE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TRIGGER_TYPE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$TYPE_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$USER_PRIVILEGES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VALIDATION_BLR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VALUE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_BLR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_CONTEXT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME RDB$VIEW_RELATIONS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$DB_CREATORS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$GLOBAL_AUTH_MAPPING + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$KEY + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$NAME_PART + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USERS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE D + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE I + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE R + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE S + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE U + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_ATTRIBUTES + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 0 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$USER_NAME + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SEC$VALUE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 9 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SJIS_0208 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SJIS_0208 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SQL$DEFAULT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 14 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME SV_SV + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME TIS620 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME TIS620 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME TIS620_UNICODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UCS_BASIC + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UNICODE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UNICODE_CI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UNICODE_CI_AI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UNICODE_FSS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UNICODE_FSS + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UTF8 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME UTF8 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1250 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1250 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1251 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1251 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1251_UA + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1252 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1252 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1253 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1253 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1254 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1254 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1255 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1255 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1256 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1256 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1257 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1257 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1257_EE + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1257_LT + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1257_LV + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1258 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 11 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN1258 + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN_CZ + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN_CZ_CI_AI + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + RDB$USER SYSDBA + RDB$GRANTOR + RDB$PRIVILEGE G + RDB$GRANT_OPTION 1 + RDB$RELATION_NAME WIN_PTBR + RDB$FIELD_NAME + RDB$USER_TYPE 8 + RDB$OBJECT_TYPE 17 + + Records affected: 731 + + Are ordered columns unique ? 1 +""" + +@pytest.mark.version('>=5.0') +def test_3(act_3: Action): + act_3.expected_stdout = expected_stdout_3 + act_3.execute() + assert act_3.clean_stdout == act_3.clean_expected_stdout diff --git a/tests/functional/basic/db/test_32.py b/tests/functional/basic/db/test_32.py index 45e38fdb..866439e2 100644 --- a/tests/functional/basic/db/test_32.py +++ b/tests/functional/basic/db/test_32.py @@ -24,17 +24,17 @@ test_script_1 = """ set list on; set count on; select * from rdb$view_relations v order by v.rdb$view_name, v.rdb$relation_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/isql/test_00.py b/tests/functional/basic/isql/test_00.py index a7b14dd1..e5ab12f2 100644 --- a/tests/functional/basic/isql/test_00.py +++ b/tests/functional/basic/isql/test_00.py @@ -25,7 +25,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ help; help set; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -70,11 +70,11 @@ expected_stdout_1 = """ SET TERM -- change statement terminator string SET WIDTH [] -- set/unset print width to for column All commands may be abbreviated to letters in CAPitals - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/basic/isql/test_01.py b/tests/functional/basic/isql/test_01.py index 880350f0..be17ed80 100644 --- a/tests/functional/basic/isql/test_01.py +++ b/tests/functional/basic/isql/test_01.py @@ -3,9 +3,9 @@ # id: functional.basic.isql.01 # title: ISQL - SHOW DATABASE # decription: Check for correct output of SHOW DATABASE on empty database. -# tracker_id: +# tracker_id: # min_versions: ['2.5.2'] -# versions: 3.0, 4.0 +# versions: 3.0, 4.0, 5.0 # qmid: functional.basic.isql.isql_01 import pytest @@ -14,7 +14,14 @@ from firebird.qa import db_factory, isql_act, Action # version: 3.0 # resources: None -substitutions_1 = [('Owner.*', 'Owner'), ('PAGE_SIZE.*', 'PAGE_SIZE'), ('Number of DB pages allocated.*', 'Number of DB pages allocated'), ('Number of DB pages used.*', 'Number of DB pages used'), ('Number of DB pages free.*', 'Number of DB pages free'), ('Sweep.*', 'Sweep'), ('Forced Writes.*', 'Forced Writes'), ('Transaction -.*', ''), ('ODS.*', 'ODS'), ('Default Character.*', 'Default Character')] +substitutions_1 = [('Owner.*', 'Owner'), ('PAGE_SIZE.*', 'PAGE_SIZE'), + ('Number of DB pages allocated.*', 'Number of DB pages allocated'), + ('Number of DB pages used.*', 'Number of DB pages used'), + ('Number of DB pages free.*', 'Number of DB pages free'), + ('Sweep.*', 'Sweep'), ('Forced Writes.*', 'Forced Writes'), + ('Transaction -.*', ''), ('ODS.*', 'ODS'), + ('Creation date.*', 'Creation date'), + ('Default Character.*', 'Default Character')] init_script_1 = """""" @@ -23,7 +30,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ -- 19.01.2016: added line "Database not encrypted", see http://sourceforge.net/p/firebird/code/62825 show database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -42,19 +49,29 @@ expected_stdout_1 = """ Transaction - Next = 5 ODS = 12.0 Database not encrypted + Creation date: Sep 10, 2021 14:43:52 Default Character set: NONE - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None -substitutions_2 = [('Owner.*', 'Owner'), ('PAGE_SIZE.*', 'PAGE_SIZE'), ('Number of DB pages allocated.*', 'Number of DB pages allocated'), ('Number of DB pages used.*', 'Number of DB pages used'), ('Number of DB pages free.*', 'Number of DB pages free'), ('Sweep.*', 'Sweep'), ('Forced Writes.*', 'Forced Writes'), ('Transaction -.*', ''), ('ODS.*', 'ODS'), ('Wire crypt plugin.*', 'Wire crypt plugin'), ('Default Character.*', 'Default Character')] +substitutions_2 = [('Owner.*', 'Owner'), ('PAGE_SIZE.*', 'PAGE_SIZE'), + ('Number of DB pages allocated.*', 'Number of DB pages allocated'), + ('Number of DB pages used.*', 'Number of DB pages used'), + ('Number of DB pages free.*', 'Number of DB pages free'), + ('Sweep.*', 'Sweep'), ('Forced Writes.*', 'Forced Writes'), + ('Transaction -.*', ''), ('ODS.*', 'ODS'), + ('Wire crypt plugin.*', 'Wire crypt plugin'), + ('Creation date.*', 'Creation date'), + ('Protocol version.*', 'Protocol version'), + ('Default Character.*', 'Default Character')] init_script_2 = """""" @@ -63,7 +80,7 @@ db_2 = db_factory(sql_dialect=3, init=init_script_2) test_script_2 = """ -- Separate for FB 4.0 since 22.01.2020 show database; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -83,12 +100,70 @@ expected_stdout_2 = """ ODS = 13.0 Database not encrypted Wire crypt plugin: + Creation date: Sep 10, 2021 14:43:52 + Protocol version = 17 Default Character set: NONE - """ +""" -@pytest.mark.version('>=4.0') +@pytest.mark.version('>=4.0,<5.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout + +# version: 5.0 +# resources: None + +substitutions_3 = [('Owner.*', 'Owner'), ('PAGE_SIZE.*', 'PAGE_SIZE'), + ('Number of DB pages allocated.*', 'Number of DB pages allocated'), + ('Number of DB pages used.*', 'Number of DB pages used'), + ('Number of DB pages free.*', 'Number of DB pages free'), + ('Sweep.*', 'Sweep'), ('Forced Writes.*', 'Forced Writes'), + ('Transaction -.*', ''), ('ODS.*', 'ODS'), + ('Wire crypt plugin.*', 'Wire crypt plugin'), + ('Creation date.*', 'Creation date'), + ('Protocol version.*', 'Protocol version'), + ('Default Character.*', 'Default Character')] + +init_script_3 = """""" + +db_3 = db_factory(sql_dialect=3, init=init_script_3) + +test_script_3 = """ + -- Separate for FB 5.0 since 10.09.2021 + -- New lines in the output (builds >= 5.0.0.196): + -- Creation date: Sep 10, 2021 7:13:17 GMT + -- Protocol version = 17 + + show database; +""" + +act_3 = isql_act('db_3', test_script_3, substitutions=substitutions_3) + +expected_stdout_3 = """ + Database: localhost:c:\\job\\qa\\fbtest-repo\\tmp\\functional.basic.isql.isql_01.fdb + Owner: SYSDBA + PAGE_SIZE 8192 + Number of DB pages allocated = 212 + Number of DB pages used = 192 + Number of DB pages free = 20 + Sweep interval = 20000 + Forced Writes are ON + Transaction - oldest = 4 + Transaction - oldest active = 5 + Transaction - oldest snapshot = 5 + Transaction - Next = 9 + ODS = 13.0 + Database not encrypted + Wire crypt plugin: + Creation date: Sep 10, 2021 7:13:17 GMT + Protocol version = 17 + Default Character set: NONE +""" + +@pytest.mark.version('>=5.0') +def test_3(act_3: Action): + act_3.expected_stdout = expected_stdout_3 + act_3.execute() + assert act_3.clean_stdout == act_3.clean_expected_stdout diff --git a/tests/functional/basic/isql/test_02.py b/tests/functional/basic/isql/test_02.py index cf27e5a1..4b124ec5 100644 --- a/tests/functional/basic/isql/test_02.py +++ b/tests/functional/basic/isql/test_02.py @@ -5,13 +5,14 @@ # decription: # Check for correct output of "SHOW SYSTEM;" command on empty database. # Checked on: -# 2.5.9.27126: OK, 0.484s. -# 3.0.5.33086: OK, 1.031s. -# 4.0.0.1378: OK, 7.547s. +# 2.5.9.27126 +# 3.0.5.33086 +# 4.0.0.2491 +# 5.0.0.43 // 21.05.2021: created separate section for this major FB version. # # tracker_id: # min_versions: [] -# versions: 3.0, 4.0 +# versions: 3.0, 4.0, 5.0 # qmid: functional.basic.isql.isql_02 import pytest @@ -134,13 +135,13 @@ Collations: WIN1257_LV WIN1258 WIN_CZ WIN_CZ_CI_AI WIN_PTBR - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -153,7 +154,7 @@ db_2 = db_factory(sql_dialect=3, init=init_script_2) test_script_2 = """ show system; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -367,11 +368,245 @@ expected_stdout_2 = """ Roles: RDB$ADMIN - """ +""" -@pytest.mark.version('>=4.0') +@pytest.mark.version('>=4.0,<5.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout + +# version: 5.0 +# resources: None + +substitutions_3 = [] + +init_script_3 = """""" + +db_3 = db_factory(sql_dialect=3, init=init_script_3) + +test_script_3 = """ + show system; +""" + +act_3 = isql_act('db_3', test_script_3, substitutions=substitutions_3) + +expected_stdout_3 = """ + Tables: + MON$ATTACHMENTS + MON$CALL_STACK + MON$CONTEXT_VARIABLES + MON$DATABASE + MON$IO_STATS + MON$MEMORY_USAGE + MON$RECORD_STATS + MON$STATEMENTS + MON$TABLE_STATS + MON$TRANSACTIONS + RDB$AUTH_MAPPING + RDB$BACKUP_HISTORY + RDB$CHARACTER_SETS + RDB$CHECK_CONSTRAINTS + RDB$COLLATIONS + RDB$CONFIG + RDB$DATABASE + RDB$DB_CREATORS + RDB$DEPENDENCIES + RDB$EXCEPTIONS + RDB$FIELDS + RDB$FIELD_DIMENSIONS + RDB$FILES + RDB$FILTERS + RDB$FORMATS + RDB$FUNCTIONS + RDB$FUNCTION_ARGUMENTS + RDB$GENERATORS + RDB$INDEX_SEGMENTS + RDB$INDICES + RDB$KEYWORDS + RDB$LOG_FILES + RDB$PACKAGES + RDB$PAGES + RDB$PROCEDURES + RDB$PROCEDURE_PARAMETERS + RDB$PUBLICATIONS + RDB$PUBLICATION_TABLES + RDB$REF_CONSTRAINTS + RDB$RELATIONS + RDB$RELATION_CONSTRAINTS + RDB$RELATION_FIELDS + RDB$ROLES + RDB$SECURITY_CLASSES + RDB$TIME_ZONES + RDB$TRANSACTIONS + RDB$TRIGGERS + RDB$TRIGGER_MESSAGES + RDB$TYPES + RDB$USER_PRIVILEGES + RDB$VIEW_RELATIONS + SEC$DB_CREATORS + SEC$GLOBAL_AUTH_MAPPING + SEC$USERS + SEC$USER_ATTRIBUTES + + Collations: + ASCII + BIG_5 + BS_BA + CP943C + CP943C_UNICODE + CS_CZ + CYRL + DA_DA + DB_CSY + DB_DAN865 + DB_DEU437 + DB_DEU850 + DB_ESP437 + DB_ESP850 + DB_FIN437 + DB_FRA437 + DB_FRA850 + DB_FRC850 + DB_FRC863 + DB_ITA437 + DB_ITA850 + DB_NLD437 + DB_NLD850 + DB_NOR865 + DB_PLK + DB_PTB850 + DB_PTG860 + DB_RUS + DB_SLO + DB_SVE437 + DB_SVE850 + DB_TRK + DB_UK437 + DB_UK850 + DB_US437 + DB_US850 + DE_DE + DOS437 + DOS737 + DOS775 + DOS850 + DOS852 + DOS857 + DOS858 + DOS860 + DOS861 + DOS862 + DOS863 + DOS864 + DOS865 + DOS866 + DOS869 + DU_NL + EN_UK + EN_US + ES_ES + ES_ES_CI_AI + EUCJ_0208 + FI_FI + FR_CA + FR_CA_CI_AI + FR_FR + FR_FR_CI_AI + GB18030 + GB18030_UNICODE + GBK + GBK_UNICODE + GB_2312 + ISO8859_1 + ISO8859_13 + ISO8859_2 + ISO8859_3 + ISO8859_4 + ISO8859_5 + ISO8859_6 + ISO8859_7 + ISO8859_8 + ISO8859_9 + ISO_HUN + ISO_PLK + IS_IS + IT_IT + KOI8R + KOI8R_RU + KOI8U + KOI8U_UA + KSC_5601 + KSC_DICTIONARY + LT_LT + NEXT + NONE + NO_NO + NXT_DEU + NXT_ESP + NXT_FRA + NXT_ITA + NXT_US + OCTETS + PDOX_ASCII + PDOX_CSY + PDOX_CYRL + PDOX_HUN + PDOX_INTL + PDOX_ISL + PDOX_NORDAN4 + PDOX_PLK + PDOX_SLO + PDOX_SWEDFIN + PT_BR + PT_PT + PXW_CSY + PXW_CYRL + PXW_GREEK + PXW_HUN + PXW_HUNDC + PXW_INTL + PXW_INTL850 + PXW_NORDAN4 + PXW_PLK + PXW_SLOV + PXW_SPAN + PXW_SWEDFIN + PXW_TURK + SJIS_0208 + SV_SV + TIS620 + TIS620_UNICODE + UCS_BASIC + UNICODE + UNICODE_CI + UNICODE_CI_AI + UNICODE_FSS + UTF8 + WIN1250 + WIN1251 + WIN1251_UA + WIN1252 + WIN1253 + WIN1254 + WIN1255 + WIN1256 + WIN1257 + WIN1257_EE + WIN1257_LT + WIN1257_LV + WIN1258 + WIN_CZ + WIN_CZ_CI_AI + WIN_PTBR + + Roles: + RDB$ADMIN +""" + +@pytest.mark.version('>=5.0') +def test_3(act_3: Action): + act_3.expected_stdout = expected_stdout_3 + act_3.execute() + assert act_3.clean_stdout == act_3.clean_expected_stdout diff --git a/tests/functional/basic/isql/test_03.py b/tests/functional/basic/isql/test_03.py index ebbcc22a..5c7118c1 100644 --- a/tests/functional/basic/isql/test_03.py +++ b/tests/functional/basic/isql/test_03.py @@ -5,7 +5,7 @@ # decription: Extend ISQL SHOW SYSTEM command to accept parameters TABLES, COLLATIONS and FUNCTIONS # tracker_id: CORE-978 # min_versions: [] -# versions: 3.0, 4.0 +# versions: 3.0, 4.0, 5.0 # qmid: functional.basic.isql.isql_14 import pytest @@ -23,7 +23,6 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SHOW SYSTEM TABLES; SHOW SYSTEM COLLATIONS; SHOW SYSTEM FUNCTIONS; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -204,13 +203,13 @@ WIN1258, CHARACTER SET WIN1258, PAD SPACE, SYSTEM WIN_CZ, CHARACTER SET WIN1250, PAD SPACE, CASE INSENSITIVE, SYSTEM WIN_CZ_CI_AI, CHARACTER SET WIN1250, PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, SYSTEM WIN_PTBR, CHARACTER SET WIN1252, PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, SYSTEM - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -225,7 +224,7 @@ test_script_2 = """ SHOW SYSTEM TABLES; SHOW SYSTEM COLLATIONS; SHOW SYSTEM FUNCTIONS; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -434,11 +433,242 @@ expected_stdout_2 = """ WIN_CZ, CHARACTER SET WIN1250, PAD SPACE, CASE INSENSITIVE, SYSTEM WIN_CZ_CI_AI, CHARACTER SET WIN1250, PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, SYSTEM WIN_PTBR, CHARACTER SET WIN1252, PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, SYSTEM - """ +""" -@pytest.mark.version('>=4.0') +@pytest.mark.version('>=4.0,<5.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout + +# version: 5.0 +# resources: None + +substitutions_3 = [("'COLL-VERSION=\\d+\\.\\d+\\.\\d+\\.\\d+', ", ''), ("'COLL-VERSION=\\d+\\.\\d+', ", '')] + +init_script_3 = """""" + +db_3 = db_factory(sql_dialect=3, init=init_script_3) + +test_script_3 = """ + SHOW SYSTEM TABLES; + SHOW SYSTEM COLLATIONS; + SHOW SYSTEM FUNCTIONS; +""" + +act_3 = isql_act('db_3', test_script_3, substitutions=substitutions_3) + +expected_stdout_3 = """ + MON$ATTACHMENTS + MON$CALL_STACK + MON$CONTEXT_VARIABLES + MON$DATABASE + MON$IO_STATS + MON$MEMORY_USAGE + MON$RECORD_STATS + MON$STATEMENTS + MON$TABLE_STATS + MON$TRANSACTIONS + RDB$AUTH_MAPPING + RDB$BACKUP_HISTORY + RDB$CHARACTER_SETS + RDB$CHECK_CONSTRAINTS + RDB$COLLATIONS + RDB$CONFIG + RDB$DATABASE + RDB$DB_CREATORS + RDB$DEPENDENCIES + RDB$EXCEPTIONS + RDB$FIELDS + RDB$FIELD_DIMENSIONS + RDB$FILES + RDB$FILTERS + RDB$FORMATS + RDB$FUNCTIONS + RDB$FUNCTION_ARGUMENTS + RDB$GENERATORS + RDB$INDEX_SEGMENTS + RDB$INDICES + RDB$KEYWORDS + RDB$LOG_FILES + RDB$PACKAGES + RDB$PAGES + RDB$PROCEDURES + RDB$PROCEDURE_PARAMETERS + RDB$PUBLICATIONS + RDB$PUBLICATION_TABLES + RDB$REF_CONSTRAINTS + RDB$RELATIONS + RDB$RELATION_CONSTRAINTS + RDB$RELATION_FIELDS + RDB$ROLES + RDB$SECURITY_CLASSES + RDB$TIME_ZONES + RDB$TRANSACTIONS + RDB$TRIGGERS + RDB$TRIGGER_MESSAGES + RDB$TYPES + RDB$USER_PRIVILEGES + RDB$VIEW_RELATIONS + SEC$DB_CREATORS + SEC$GLOBAL_AUTH_MAPPING + SEC$USERS + SEC$USER_ATTRIBUTES + + ASCII, CHARACTER SET ASCII, PAD SPACE, SYSTEM + BIG_5, CHARACTER SET BIG_5, PAD SPACE, SYSTEM + BS_BA, CHARACTER SET WIN1250, PAD SPACE, SYSTEM + CP943C, CHARACTER SET CP943C, PAD SPACE, SYSTEM + CP943C_UNICODE, CHARACTER SET CP943C, PAD SPACE, 'COLL-VERSION=153.88', SYSTEM + CS_CZ, CHARACTER SET ISO8859_2, PAD SPACE, SYSTEM + CYRL, CHARACTER SET CYRL, PAD SPACE, SYSTEM + DA_DA, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + DB_CSY, CHARACTER SET DOS852, PAD SPACE, SYSTEM + DB_DAN865, CHARACTER SET DOS865, PAD SPACE, SYSTEM + DB_DEU437, CHARACTER SET DOS437, PAD SPACE, SYSTEM + DB_DEU850, CHARACTER SET DOS850, PAD SPACE, SYSTEM + DB_ESP437, CHARACTER SET DOS437, PAD SPACE, SYSTEM + DB_ESP850, CHARACTER SET DOS850, PAD SPACE, SYSTEM + DB_FIN437, CHARACTER SET DOS437, PAD SPACE, SYSTEM + DB_FRA437, CHARACTER SET DOS437, PAD SPACE, SYSTEM + DB_FRA850, CHARACTER SET DOS850, PAD SPACE, SYSTEM + DB_FRC850, CHARACTER SET DOS850, PAD SPACE, SYSTEM + DB_FRC863, CHARACTER SET DOS863, PAD SPACE, SYSTEM + DB_ITA437, CHARACTER SET DOS437, PAD SPACE, SYSTEM + DB_ITA850, CHARACTER SET DOS850, PAD SPACE, SYSTEM + DB_NLD437, CHARACTER SET DOS437, PAD SPACE, SYSTEM + DB_NLD850, CHARACTER SET DOS850, PAD SPACE, SYSTEM + DB_NOR865, CHARACTER SET DOS865, PAD SPACE, SYSTEM + DB_PLK, CHARACTER SET DOS852, PAD SPACE, SYSTEM + DB_PTB850, CHARACTER SET DOS850, PAD SPACE, SYSTEM + DB_PTG860, CHARACTER SET DOS860, PAD SPACE, SYSTEM + DB_RUS, CHARACTER SET CYRL, PAD SPACE, SYSTEM + DB_SLO, CHARACTER SET DOS852, PAD SPACE, SYSTEM + DB_SVE437, CHARACTER SET DOS437, PAD SPACE, SYSTEM + DB_SVE850, CHARACTER SET DOS850, PAD SPACE, SYSTEM + DB_TRK, CHARACTER SET DOS857, PAD SPACE, SYSTEM + DB_UK437, CHARACTER SET DOS437, PAD SPACE, SYSTEM + DB_UK850, CHARACTER SET DOS850, PAD SPACE, SYSTEM + DB_US437, CHARACTER SET DOS437, PAD SPACE, SYSTEM + DB_US850, CHARACTER SET DOS850, PAD SPACE, SYSTEM + DE_DE, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + DOS437, CHARACTER SET DOS437, PAD SPACE, SYSTEM + DOS737, CHARACTER SET DOS737, PAD SPACE, SYSTEM + DOS775, CHARACTER SET DOS775, PAD SPACE, SYSTEM + DOS850, CHARACTER SET DOS850, PAD SPACE, SYSTEM + DOS852, CHARACTER SET DOS852, PAD SPACE, SYSTEM + DOS857, CHARACTER SET DOS857, PAD SPACE, SYSTEM + DOS858, CHARACTER SET DOS858, PAD SPACE, SYSTEM + DOS860, CHARACTER SET DOS860, PAD SPACE, SYSTEM + DOS861, CHARACTER SET DOS861, PAD SPACE, SYSTEM + DOS862, CHARACTER SET DOS862, PAD SPACE, SYSTEM + DOS863, CHARACTER SET DOS863, PAD SPACE, SYSTEM + DOS864, CHARACTER SET DOS864, PAD SPACE, SYSTEM + DOS865, CHARACTER SET DOS865, PAD SPACE, SYSTEM + DOS866, CHARACTER SET DOS866, PAD SPACE, SYSTEM + DOS869, CHARACTER SET DOS869, PAD SPACE, SYSTEM + DU_NL, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + EN_UK, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + EN_US, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + ES_ES, CHARACTER SET ISO8859_1, PAD SPACE, 'DISABLE-COMPRESSIONS=1;SPECIALS-FIRST=1', SYSTEM + ES_ES_CI_AI, CHARACTER SET ISO8859_1, PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, 'DISABLE-COMPRESSIONS=1;SPECIALS-FIRST=1', SYSTEM + EUCJ_0208, CHARACTER SET EUCJ_0208, PAD SPACE, SYSTEM + FI_FI, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + FR_CA, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + FR_CA_CI_AI, CHARACTER SET ISO8859_1, FROM EXTERNAL ('FR_CA'), PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, 'SPECIALS-FIRST=1', SYSTEM + FR_FR, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + FR_FR_CI_AI, CHARACTER SET ISO8859_1, FROM EXTERNAL ('FR_FR'), PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, 'SPECIALS-FIRST=1', SYSTEM + GB18030, CHARACTER SET GB18030, PAD SPACE, SYSTEM + GB18030_UNICODE, CHARACTER SET GB18030, PAD SPACE, 'COLL-VERSION=153.88', SYSTEM + GBK, CHARACTER SET GBK, PAD SPACE, SYSTEM + GBK_UNICODE, CHARACTER SET GBK, PAD SPACE, 'COLL-VERSION=153.88', SYSTEM + GB_2312, CHARACTER SET GB_2312, PAD SPACE, SYSTEM + ISO8859_1, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + ISO8859_13, CHARACTER SET ISO8859_13, PAD SPACE, SYSTEM + ISO8859_2, CHARACTER SET ISO8859_2, PAD SPACE, SYSTEM + ISO8859_3, CHARACTER SET ISO8859_3, PAD SPACE, SYSTEM + ISO8859_4, CHARACTER SET ISO8859_4, PAD SPACE, SYSTEM + ISO8859_5, CHARACTER SET ISO8859_5, PAD SPACE, SYSTEM + ISO8859_6, CHARACTER SET ISO8859_6, PAD SPACE, SYSTEM + ISO8859_7, CHARACTER SET ISO8859_7, PAD SPACE, SYSTEM + ISO8859_8, CHARACTER SET ISO8859_8, PAD SPACE, SYSTEM + ISO8859_9, CHARACTER SET ISO8859_9, PAD SPACE, SYSTEM + ISO_HUN, CHARACTER SET ISO8859_2, PAD SPACE, SYSTEM + ISO_PLK, CHARACTER SET ISO8859_2, PAD SPACE, SYSTEM + IS_IS, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + IT_IT, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + KOI8R, CHARACTER SET KOI8R, PAD SPACE, SYSTEM + KOI8R_RU, CHARACTER SET KOI8R, PAD SPACE, SYSTEM + KOI8U, CHARACTER SET KOI8U, PAD SPACE, SYSTEM + KOI8U_UA, CHARACTER SET KOI8U, PAD SPACE, SYSTEM + KSC_5601, CHARACTER SET KSC_5601, PAD SPACE, SYSTEM + KSC_DICTIONARY, CHARACTER SET KSC_5601, PAD SPACE, SYSTEM + LT_LT, CHARACTER SET ISO8859_13, PAD SPACE, SYSTEM + NEXT, CHARACTER SET NEXT, PAD SPACE, SYSTEM + NONE, CHARACTER SET NONE, PAD SPACE, SYSTEM + NO_NO, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + NXT_DEU, CHARACTER SET NEXT, PAD SPACE, SYSTEM + NXT_ESP, CHARACTER SET NEXT, PAD SPACE, SYSTEM + NXT_FRA, CHARACTER SET NEXT, PAD SPACE, SYSTEM + NXT_ITA, CHARACTER SET NEXT, PAD SPACE, SYSTEM + NXT_US, CHARACTER SET NEXT, PAD SPACE, SYSTEM + OCTETS, CHARACTER SET OCTETS, PAD SPACE, SYSTEM + PDOX_ASCII, CHARACTER SET DOS437, PAD SPACE, SYSTEM + PDOX_CSY, CHARACTER SET DOS852, PAD SPACE, SYSTEM + PDOX_CYRL, CHARACTER SET CYRL, PAD SPACE, SYSTEM + PDOX_HUN, CHARACTER SET DOS852, PAD SPACE, SYSTEM + PDOX_INTL, CHARACTER SET DOS437, PAD SPACE, SYSTEM + PDOX_ISL, CHARACTER SET DOS861, PAD SPACE, SYSTEM + PDOX_NORDAN4, CHARACTER SET DOS865, PAD SPACE, SYSTEM + PDOX_PLK, CHARACTER SET DOS852, PAD SPACE, SYSTEM + PDOX_SLO, CHARACTER SET DOS852, PAD SPACE, SYSTEM + PDOX_SWEDFIN, CHARACTER SET DOS437, PAD SPACE, SYSTEM + PT_BR, CHARACTER SET ISO8859_1, PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, SYSTEM + PT_PT, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + PXW_CSY, CHARACTER SET WIN1250, PAD SPACE, SYSTEM + PXW_CYRL, CHARACTER SET WIN1251, PAD SPACE, SYSTEM + PXW_GREEK, CHARACTER SET WIN1253, PAD SPACE, SYSTEM + PXW_HUN, CHARACTER SET WIN1250, PAD SPACE, SYSTEM + PXW_HUNDC, CHARACTER SET WIN1250, PAD SPACE, SYSTEM + PXW_INTL, CHARACTER SET WIN1252, PAD SPACE, SYSTEM + PXW_INTL850, CHARACTER SET WIN1252, PAD SPACE, SYSTEM + PXW_NORDAN4, CHARACTER SET WIN1252, PAD SPACE, SYSTEM + PXW_PLK, CHARACTER SET WIN1250, PAD SPACE, SYSTEM + PXW_SLOV, CHARACTER SET WIN1250, PAD SPACE, SYSTEM + PXW_SPAN, CHARACTER SET WIN1252, PAD SPACE, SYSTEM + PXW_SWEDFIN, CHARACTER SET WIN1252, PAD SPACE, SYSTEM + PXW_TURK, CHARACTER SET WIN1254, PAD SPACE, SYSTEM + SJIS_0208, CHARACTER SET SJIS_0208, PAD SPACE, SYSTEM + SV_SV, CHARACTER SET ISO8859_1, PAD SPACE, SYSTEM + TIS620, CHARACTER SET TIS620, PAD SPACE, SYSTEM + TIS620_UNICODE, CHARACTER SET TIS620, PAD SPACE, 'COLL-VERSION=153.88', SYSTEM + UCS_BASIC, CHARACTER SET UTF8, PAD SPACE, SYSTEM + UNICODE, CHARACTER SET UTF8, PAD SPACE, 'COLL-VERSION=153.88', SYSTEM + UNICODE_CI, CHARACTER SET UTF8, FROM EXTERNAL ('UNICODE'), PAD SPACE, CASE INSENSITIVE, 'COLL-VERSION=153.88', SYSTEM + UNICODE_CI_AI, CHARACTER SET UTF8, FROM EXTERNAL ('UNICODE'), PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, 'COLL-VERSION=153.88', SYSTEM + UNICODE_FSS, CHARACTER SET UNICODE_FSS, PAD SPACE, SYSTEM + UTF8, CHARACTER SET UTF8, PAD SPACE, SYSTEM + WIN1250, CHARACTER SET WIN1250, PAD SPACE, SYSTEM + WIN1251, CHARACTER SET WIN1251, PAD SPACE, SYSTEM + WIN1251_UA, CHARACTER SET WIN1251, PAD SPACE, SYSTEM + WIN1252, CHARACTER SET WIN1252, PAD SPACE, SYSTEM + WIN1253, CHARACTER SET WIN1253, PAD SPACE, SYSTEM + WIN1254, CHARACTER SET WIN1254, PAD SPACE, SYSTEM + WIN1255, CHARACTER SET WIN1255, PAD SPACE, SYSTEM + WIN1256, CHARACTER SET WIN1256, PAD SPACE, SYSTEM + WIN1257, CHARACTER SET WIN1257, PAD SPACE, SYSTEM + WIN1257_EE, CHARACTER SET WIN1257, PAD SPACE, SYSTEM + WIN1257_LT, CHARACTER SET WIN1257, PAD SPACE, SYSTEM + WIN1257_LV, CHARACTER SET WIN1257, PAD SPACE, SYSTEM + WIN1258, CHARACTER SET WIN1258, PAD SPACE, SYSTEM + WIN_CZ, CHARACTER SET WIN1250, PAD SPACE, CASE INSENSITIVE, SYSTEM + WIN_CZ_CI_AI, CHARACTER SET WIN1250, PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, SYSTEM + WIN_PTBR, CHARACTER SET WIN1252, PAD SPACE, CASE INSENSITIVE, ACCENT INSENSITIVE, SYSTEM +""" + +@pytest.mark.version('>=5.0') +def test_3(act_3: Action): + act_3.expected_stdout = expected_stdout_3 + act_3.execute() + assert act_3.clean_stdout == act_3.clean_expected_stdout diff --git a/tests/functional/basic/isql/test_05.py b/tests/functional/basic/isql/test_05.py index 388b44b2..81a0ffad 100644 --- a/tests/functional/basic/isql/test_05.py +++ b/tests/functional/basic/isql/test_05.py @@ -2,22 +2,23 @@ # # id: functional.basic.isql.05 # title: ISQL should be able to process single statement with length up to 10*1024*1024 chars -# decription: +# decription: # Source sample see in CORE-5382 ("Incorrect processing (truncation) of SQL statement with length 10MB+1"). -# Test prepares script with two SELECT statements: +# Test prepares script with two SELECT statements: # One of them has length EXACTLY equal to 10*1024*1024 chars (excluding final ';'), another length = 10Mb + 1. # First statement should be executed OK, second should fail. # Checked on WI-V3.0.2.32625, WI-T4.0.0.440 -# +# # PS. Best place of this test in functional/basic/isql/ folder rather than in 'bugs' one. -# -# tracker_id: +# +# tracker_id: # min_versions: ['3.0'] # versions: 3.0 # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from pathlib import Path +from firebird.qa import db_factory, python_act, Action, temp_file # version: 3.0 # resources: None @@ -28,7 +29,7 @@ init_script_1 = """ recreate table dua(i int); insert into dua(i) values(1); commit; - """ +""" db_1 = db_factory(sql_dialect=3, init=init_script_1) @@ -37,12 +38,12 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # import os # import subprocess # import fdb -# +# # db_conn.close() -# +# # dml_pref='select /*' # dml_suff='*/ %s i from rdb$database;' -# +# # # prepare DB for testing: create lot of tables: # ############################################### # f_work_sql=open( os.path.join(context['temp_directory'],'tmp_work_5382.sql'), 'w') @@ -50,27 +51,37 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # f_work_sql.write( (dml_pref.ljust(10485729,'-') + dml_suff) % (10485760) ) # f_work_sql.write( (dml_pref.ljust(10485730,'-') + dml_suff) % (10485761) ) # f_work_sql.close() -# +# # runProgram('isql',[dsn,'-user',user_name,'-pas',user_password,'-i',f_work_sql.name]) # os.remove(f_work_sql.name) -# +# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ I 10485760 - """ +""" + expected_stderr_1 = """ Statement failed, SQLSTATE = 54000 Dynamic SQL Error -SQL error code = -902 -Implementation limit exceeded -SQL statement is too long. Maximum size is 10485760 bytes. - """ +""" + +script_1 = temp_file('script.sql') @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - +def test_1(act_1: Action, script_1: Path): + with script_1.open(mode='w') as f: + f.write('set list on;\n') + f.write(f"select /*{'-' * 10485720}*/ 10485760 i from rdb$database;\n") + f.write(f"select /*{'-' * 10485721}*/ 10485761 i from rdb$database;\n") + act_1.expected_stderr = expected_stderr_1 + act_1.expected_stdout = expected_stdout_1 + act_1.isql(switches=[], input_file=script_1) + assert act_1.clean_stderr == act_1.clean_expected_stderr + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/database/alter/test_01.py b/tests/functional/database/alter/test_01.py index daa1c58a..2e3e7ff7 100644 --- a/tests/functional/database/alter/test_01.py +++ b/tests/functional/database/alter/test_01.py @@ -3,13 +3,13 @@ # id: functional.database.alter.01 # title: Alter database: adding a secondary file # decription: Adding a secondary file to the database -# tracker_id: +# tracker_id: # min_versions: [] # versions: 1.0 -# qmid: +# qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 1.0 # resources: None @@ -29,16 +29,24 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # cursor.execute("SELECT cast(RDB$FILE_NAME as varchar(150)),RDB$FILE_SEQUENCE,RDB$FILE_START,RDB$FILE_LENGTH FROM RDB$FILES") # printData(cursor) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """CAST RDB$FILE_SEQUENCE RDB$FILE_START RDB$FILE_LENGTH +act_1 = python_act('db_1', substitutions=substitutions_1) + +expected_stdout_1 = """ +CAST RDB$FILE_SEQUENCE RDB$FILE_START RDB$FILE_LENGTH ------------------------------------------------------------------------------------------------------------------------------------------------------ ----------------- -------------- --------------- C:\\JOB\\QA\\FBTEST\\TMP\\TEST.G00 1 10000 0 """ @pytest.mark.version('>=1.0') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action, capsys): + with act_1.db.connect() as con: + with con.cursor() as c: + c.execute(f"ALTER DATABASE ADD FILE '{act_1.db.db_path.with_name('TEST.G00')}' STARTING 10000") + con.commit() + c.execute("SELECT cast(RDB$FILE_NAME as varchar(150)),RDB$FILE_SEQUENCE,RDB$FILE_START,RDB$FILE_LENGTH FROM RDB$FILES") + act_1.print_data(c) + # Check + act_1.expected_stdout = expected_stdout_1 + act_1.stdout = capsys.readouterr().out + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/database/alter/test_02.py b/tests/functional/database/alter/test_02.py index 83a338a5..ed56b0c6 100644 --- a/tests/functional/database/alter/test_02.py +++ b/tests/functional/database/alter/test_02.py @@ -3,13 +3,13 @@ # id: functional.database.alter.02 # title: ALter database: adding secondary file with alternate keyword # decription: Adding secondary file with alternate keyword for database. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 1.0 -# qmid: +# qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 1.0 # resources: None @@ -28,7 +28,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # cursor.execute("SELECT cast(RDB$FILE_NAME as varchar(150)),RDB$FILE_SEQUENCE,RDB$FILE_START,RDB$FILE_LENGTH FROM RDB$FILES") # printData(cursor) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """CAST RDB$FILE_SEQUENCE RDB$FILE_START RDB$FILE_LENGTH ------------------------------------------------------------------------------------------------------------------------------------------------------ ----------------- -------------- --------------- @@ -36,8 +37,14 @@ C:\\JOB\\QA\\FBTEST\\TMP\\TEST.G00 """ @pytest.mark.version('>=1.0') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action, capsys): + with act_1.db.connect() as con: + with con.cursor() as c: + c.execute(f"ALTER SCHEMA ADD FILE '{act_1.db.db_path.with_name('TEST.G00')}' STARTING 10000") + con.commit() + c.execute("SELECT cast(RDB$FILE_NAME as varchar(150)),RDB$FILE_SEQUENCE,RDB$FILE_START,RDB$FILE_LENGTH FROM RDB$FILES") + act_1.print_data(c) + # Check + act_1.expected_stdout = expected_stdout_1 + act_1.stdout = capsys.readouterr().out + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/database/alter/test_03.py b/tests/functional/database/alter/test_03.py index ee9f78d9..924a25e9 100644 --- a/tests/functional/database/alter/test_03.py +++ b/tests/functional/database/alter/test_03.py @@ -3,13 +3,14 @@ # id: functional.database.alter.03 # title: Alter database: add file with name of this database or previously added files must fail # decription: Add same file twice must fail -# tracker_id: +# tracker_id: # min_versions: [] # versions: 3.0 -# qmid: +# qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError # version: 3.0 # resources: None @@ -35,19 +36,15 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # print ("Unexpected exception",sys.exc_info()[0]) # print ("Arguments",sys.exc_info()[1]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """ - Error while executing SQL statement: - - SQLCODE: -607 - - unsuccessful metadata update - - ALTER DATABASE failed - - Cannot add file with the same name as the database or added files - """ +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action, capsys): + with act_1.db.connect() as con: + with con.cursor() as c: + c.execute(f"ALTER DATABASE ADD FILE '{act_1.db.db_path.with_name('TEST.G00')}' STARTING 10000") + con.commit() + with pytest.raises(DatabaseError, match='.*Cannot add file with the same name as the database or added files.*'): + c.execute(f"ALTER DATABASE ADD FILE '{act_1.db.db_path.with_name('TEST.G00')}' STARTING 20000") + # Passed diff --git a/tests/functional/database/create/test_01.py b/tests/functional/database/create/test_01.py index 327adf55..f0b7ee9a 100644 --- a/tests/functional/database/create/test_01.py +++ b/tests/functional/database/create/test_01.py @@ -1,22 +1,23 @@ #coding:utf-8 # # id: functional.database.create.01 -# title: +# title: # Check ability to specify SET NAMES and DEFAULT CHARACTER SET within one statement. # Checked on: # 4.0.0.1740 SS: 1.157s. # 3.0.6.33236 SS: 0.808s. # 2.5.9.27149 SC: 0.508s. # NOTE: name of client charset must be enclosed in apostrophes, i.e.: create database ... set names 'win1251' ... -# -# decription: -# tracker_id: +# +# decription: +# tracker_id: # min_versions: ['2.5'] # versions: 2.5.0 -# qmid: +# qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from pathlib import Path +from firebird.qa import db_factory, python_act, Action # version: 2.5.0 # resources: None @@ -25,25 +26,25 @@ substitutions_1 = [] init_script_1 = """""" -db_1 = db_factory(sql_dialect=3, init=init_script_1) +db_1 = db_factory(sql_dialect=3, init=init_script_1, do_not_create=True) # test_script_1 #--- -# +# # import os # import fdb -# -# +# +# # test_db="".join([context[db_path_property], "tmp_create_db_01.fdb"]) # if os.path.isfile(test_db): # os.remove(test_db) -# +# # db_conn.close() -# +# # sql_ddl = "create database 'localhost:%(test_db)s' user '%(user_name)s' password '%(user_password)s' set names 'win1251' default character set utf8" % dict(globals(), **locals()) -# +# # con = fdb.create_database( sql_ddl ) -# +# # cur = con.cursor() # sql=''' # select c.rdb$character_set_name as client_char_set, r.rdb$character_set_name as db_char_set @@ -51,27 +52,36 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # cross join rdb$database r # where a.mon$attachment_id = current_connection # ''' -# +# # cur.execute(sql); -# +# # hdr=cur.description # for r in cur: # for i in range(0,len(hdr)): # print( hdr[i][0],':', r[i] ) -# +# # con.commit() # con.drop_database() #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ - CLIENT_CHAR_SET : WIN1251 - DB_CHAR_SET : UTF8 - """ - -@pytest.mark.version('>=2.5.0') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - +CLIENT_CHAR_SET WIN1251 +DB_CHAR_SET UTF8 +""" +@pytest.mark.version('>=3.0') +def test_1(act_1: Action): + script = f""" + create database '{act_1.db.dsn}' user '{act_1.db.user}' + password '{act_1.db.password}' set names 'win1251' default character set utf8 ; + set list on ; + select c.rdb$character_set_name as client_char_set, r.rdb$character_set_name as db_char_set + from mon$attachments a join rdb$character_sets c on a.mon$character_set_id = c.rdb$character_set_id + cross join rdb$database r + where a.mon$attachment_id = current_connection ; + """ + act_1.expected_stdout = expected_stdout_1 + act_1.isql(switches=[], input=script, connect_db=False) + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/database/create/test_02.py b/tests/functional/database/create/test_02.py index fdf0f3da..a1685e80 100644 --- a/tests/functional/database/create/test_02.py +++ b/tests/functional/database/create/test_02.py @@ -56,18 +56,18 @@ test_script_1 = """ revoke drop database from user ozzy; drop user ozzy; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Who am I ? OZZY Am I on just created DB ? YES - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/database/create/test_03.py b/tests/functional/database/create/test_03.py index 233aca54..9a87d336 100644 --- a/tests/functional/database/create/test_03.py +++ b/tests/functional/database/create/test_03.py @@ -23,17 +23,17 @@ db_1 = db_factory(page_size=1024, sql_dialect=3, init=init_script_1) test_script_1 = """ set list on; select mon$page_size as page_size from mon$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ PAGE_SIZE 4096 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/database/create/test_04.py b/tests/functional/database/create/test_04.py index 0a2fce6b..2cbd3032 100644 --- a/tests/functional/database/create/test_04.py +++ b/tests/functional/database/create/test_04.py @@ -23,17 +23,17 @@ db_1 = db_factory(page_size=2048, sql_dialect=3, init=init_script_1) test_script_1 = """ set list on; select mon$page_size as page_size from mon$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ PAGE_SIZE 4096 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/database/create/test_05.py b/tests/functional/database/create/test_05.py index e31ec0e0..74bc0084 100644 --- a/tests/functional/database/create/test_05.py +++ b/tests/functional/database/create/test_05.py @@ -23,17 +23,17 @@ db_1 = db_factory(page_size=4096, sql_dialect=3, init=init_script_1) test_script_1 = """ set list on; select mon$page_size as page_size from mon$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ PAGE_SIZE 4096 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/database/create/test_06.py b/tests/functional/database/create/test_06.py index a60fdbb7..1ae8067c 100644 --- a/tests/functional/database/create/test_06.py +++ b/tests/functional/database/create/test_06.py @@ -23,17 +23,17 @@ db_1 = db_factory(page_size=8192, sql_dialect=3, init=init_script_1) test_script_1 = """ set list on; select mon$page_size as page_size from mon$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ PAGE_SIZE 8192 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/database/create/test_07.py b/tests/functional/database/create/test_07.py index 92f27de3..741a822b 100644 --- a/tests/functional/database/create/test_07.py +++ b/tests/functional/database/create/test_07.py @@ -23,17 +23,17 @@ db_1 = db_factory(page_size=16384, sql_dialect=3, init=init_script_1) test_script_1 = """ set list on; select mon$page_size as page_size from mon$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ PAGE_SIZE 16384 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/database/create/test_08.py b/tests/functional/database/create/test_08.py index c6c31e80..5847c866 100644 --- a/tests/functional/database/create/test_08.py +++ b/tests/functional/database/create/test_08.py @@ -1,43 +1,43 @@ #coding:utf-8 # # id: functional.database.create.08 -# title: +# title: # CREATE DATABASE - Multi file DB # Checked on: # 2.5.9.27126: OK, 0.750s. # 3.0.5.33086: OK, 2.078s. # 4.0.0.1378: OK, 8.500s. -# -# decription: -# tracker_id: +# +# decription: +# tracker_id: # min_versions: ['2.5'] -# versions: 4.0 -# qmid: +# versions: 2.5.0, 4.0 +# qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action -# version: 4.0 +# version: 2.5.0 # resources: None substitutions_1 = [('^.*TMP_CREATE_DB_08.F00', 'TMP_CREATE_DB_08.F00'), ('[ ]+', '\t')] init_script_1 = """""" -db_1 = db_factory(sql_dialect=3, init=init_script_1) +db_1 = db_factory(sql_dialect=3, init=init_script_1, do_not_create=True) # test_script_1 #--- # dsn = "".join([context["server_location"], # context[db_path_property], # "TMP_CREATE_DB_08.FDB"]) -# +# # file1 = "".join([context[db_path_property], "TMP_CREATE_DB_08.F00"]) -# -# createCommand = "CREATE DATABASE '%s' LENGTH 300 USER '%s' PASSWORD '%s' FILE '%s' LENGTH 300" % (dsn, user_name, user_password, file1) -# +# +# createCommand = "CREATE DATABASE '%s' LENGTH 200 USER '%s' PASSWORD '%s' FILE '%s' LENGTH 200" % (dsn, user_name, user_password, file1) +# # db_conn= kdb.create_database(createCommand, int(sql_dialect)) -# +# # sql=''' # set list on; # select @@ -51,18 +51,95 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # runProgram('isql',[dsn,'-user',user_name,'-pas',user_password],sql) # db_conn.drop_database() #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ + TMP_CREATE_DB_08.F00 + RDB$FILE_SEQUENCE 1 + RDB$FILE_START 201 + RDB$FILE_LENGTH 200 +""" + +@pytest.mark.version('>=2.5.0,<4.0') +def test_1(act_1: Action): + script = f""" + create database '{act_1.db.dsn}' user '{act_1.db.user}' + password '{act_1.db.password}' LENGTH 200 + FILE '{act_1.db.db_path.with_name('TMP_CREATE_DB_08.F00')}' LENGTH 200 + ; + set list on ; + select + cast(rdb$file_name as varchar(100)) db_file + ,rdb$file_sequence + ,rdb$file_start + ,rdb$file_length + from rdb$files ; + """ + act_1.expected_stdout = expected_stdout_1 + act_1.isql(switches=[], input=script, connect_db=False) + assert act_1.clean_stdout == act_1.clean_expected_stdout + + +# version: 4.0 +# resources: None + +substitutions_2 = [('^.*TMP_CREATE_DB_08.F00', 'TMP_CREATE_DB_08.F00'), ('[ ]+', '\t')] + +init_script_2 = """""" + +db_2 = db_factory(sql_dialect=3, init=init_script_2, do_not_create=True) + +# test_script_2 +#--- +# dsn = "".join([context["server_location"], +# context[db_path_property], +# "TMP_CREATE_DB_08.FDB"]) +# +# file1 = "".join([context[db_path_property], "TMP_CREATE_DB_08.F00"]) +# +# createCommand = "CREATE DATABASE '%s' LENGTH 300 USER '%s' PASSWORD '%s' FILE '%s' LENGTH 300" % (dsn, user_name, user_password, file1) +# +# db_conn= kdb.create_database(createCommand, int(sql_dialect)) +# +# sql=''' +# set list on; +# select +# cast(rdb$file_name as varchar(60)) db_file +# ,rdb$file_sequence +# ,rdb$file_start +# ,rdb$file_length +# from rdb$files +# ; +# ''' +# runProgram('isql',[dsn,'-user',user_name,'-pas',user_password],sql) +# db_conn.drop_database() +#--- + +act_2 = python_act('db_2', substitutions=substitutions_2) + +expected_stdout_2 = """ TMP_CREATE_DB_08.F00 RDB$FILE_SEQUENCE 1 RDB$FILE_START 301 RDB$FILE_LENGTH 300 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_2(act_2: Action): + script = f""" + create database '{act_2.db.dsn}' user '{act_2.db.user}' + password '{act_2.db.password}' LENGTH 300 + FILE '{act_2.db.db_path.with_name('TMP_CREATE_DB_08.F00')}' LENGTH 300 + ; + set list on ; + select + cast(rdb$file_name as varchar(100)) db_file + ,rdb$file_sequence + ,rdb$file_start + ,rdb$file_length + from rdb$files ; + """ + act_2.expected_stdout = expected_stdout_2 + act_2.isql(switches=[], input=script, connect_db=False) + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/database/create/test_09.py b/tests/functional/database/create/test_09.py index c7d7034c..81827732 100644 --- a/tests/functional/database/create/test_09.py +++ b/tests/functional/database/create/test_09.py @@ -2,47 +2,44 @@ # # id: functional.database.create.09 # title: CREATE DATABASE - Multi file DB -# decription: +# decription: # Create database with four files. # Checked on: # 2.5.9.27126: OK, 0.875s. # 3.0.5.33086: OK, 5.797s. # 4.0.0.1378: OK, 8.468s. -# -# tracker_id: +# +# tracker_id: # min_versions: ['2.5'] -# versions: 4.0 -# qmid: +# versions: 2.5.0, 4.0 +# qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action -# version: 4.0 +# version: 2.5.0 # resources: None substitutions_1 = [('^.*TMP_CREATE_DB_09.F0', 'TMP_CREATE_DB_09.F0'), ('[ ]+', '\t')] init_script_1 = """""" -db_1 = db_factory(sql_dialect=3, init=init_script_1) +db_1 = db_factory(sql_dialect=3, init=init_script_1, do_not_create=True) # test_script_1 #--- # dsn = "".join([context["server_location"], # context[db_path_property], # "TMP_CREATE_DB_09.FDB"]) -# -# DB_FILE1 = "".join([context[db_path_property], "TMP_CREATE_DB_09.F00"]) -# DB_FILE2 = "".join([context[db_path_property], "TMP_CREATE_DB_09.F01"]) -# DB_FILE3 = "".join([context[db_path_property], "TMP_CREATE_DB_09.F02"]) -# -# DB_USER=user_name -# DB_PSWD=user_password -# DB_FILE_LEN=300 -# -# createCommand = "CREATE DATABASE '%s' LENGTH 300 USER '%s' PASSWORD '%s' FILE '%s' LENGTH 300 FILE '%s' LENGTH 300 FILE '%s' LENGTH 300" % (dsn, user_name, user_password, DB_FILE1, DB_FILE2, DB_FILE3 ) +# +# file1 = "".join([context[db_path_property], "TMP_CREATE_DB_09.F00"]) +# file2 = "".join([context[db_path_property], "TMP_CREATE_DB_09.F01"]) +# file3 = "".join([context[db_path_property], "TMP_CREATE_DB_09.F02"]) +# +# createCommand = "CREATE DATABASE '%s' LENGTH 200 USER '%s' PASSWORD '%s' FILE '%s' LENGTH 200 FILE '%s' LENGTH 200 FILE '%s' LENGTH 200" % (dsn, user_name, user_password, file1, file2, file3) +# # db_conn= kdb.create_database(createCommand, int(sql_dialect)) -# +# # sql=''' # set list on; # select @@ -54,13 +51,93 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ; # ''' # runProgram('isql',[dsn,'-user',user_name,'-pas',user_password],sql) -# +# # db_conn.drop_database() -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ + TMP_CREATE_DB_09.F00 + RDB$FILE_SEQUENCE 1 + RDB$FILE_START 201 + RDB$FILE_LENGTH 200 + TMP_CREATE_DB_09.F01 + RDB$FILE_SEQUENCE 2 + RDB$FILE_START 401 + RDB$FILE_LENGTH 200 + TMP_CREATE_DB_09.F02 + RDB$FILE_SEQUENCE 3 + RDB$FILE_START 601 + RDB$FILE_LENGTH 200 +""" + +@pytest.mark.version('>=2.5.0,<4.0') +def test_1(act_1: Action): + script = f""" + create database '{act_1.db.dsn}' user '{act_1.db.user}' + password '{act_1.db.password}' LENGTH 200 + FILE '{act_1.db.db_path.with_name('TMP_CREATE_DB_09.F00')}' LENGTH 200 + FILE '{act_1.db.db_path.with_name('TMP_CREATE_DB_09.F01')}' LENGTH 200 + FILE '{act_1.db.db_path.with_name('TMP_CREATE_DB_09.F02')}' LENGTH 200 + ; + set list on ; + select + cast(rdb$file_name as varchar(100)) db_file + ,rdb$file_sequence + ,rdb$file_start + ,rdb$file_length + from rdb$files ; + """ + act_1.expected_stdout = expected_stdout_1 + act_1.isql(switches=[], input=script, connect_db=False) + assert act_1.clean_stdout == act_1.clean_expected_stdout + + +# version: 4.0 +# resources: None + +substitutions_2 = [('^.*TMP_CREATE_DB_09.F0', 'TMP_CREATE_DB_09.F0'), ('[ ]+', '\t')] + +init_script_2 = """""" + +db_2 = db_factory(sql_dialect=3, init=init_script_2, do_not_create=True) + +# test_script_2 +#--- +# dsn = "".join([context["server_location"], +# context[db_path_property], +# "TMP_CREATE_DB_09.FDB"]) +# +# DB_FILE1 = "".join([context[db_path_property], "TMP_CREATE_DB_09.F00"]) +# DB_FILE2 = "".join([context[db_path_property], "TMP_CREATE_DB_09.F01"]) +# DB_FILE3 = "".join([context[db_path_property], "TMP_CREATE_DB_09.F02"]) +# +# DB_USER=user_name +# DB_PSWD=user_password +# DB_FILE_LEN=300 +# +# createCommand = "CREATE DATABASE '%s' LENGTH 300 USER '%s' PASSWORD '%s' FILE '%s' LENGTH 300 FILE '%s' LENGTH 300 FILE '%s' LENGTH 300" % (dsn, user_name, user_password, DB_FILE1, DB_FILE2, DB_FILE3 ) +# db_conn= kdb.create_database(createCommand, int(sql_dialect)) +# +# sql=''' +# set list on; +# select +# cast(rdb$file_name as varchar(60)) db_file +# ,rdb$file_sequence +# ,rdb$file_start +# ,rdb$file_length +# from rdb$files +# ; +# ''' +# runProgram('isql',[dsn,'-user',user_name,'-pas',user_password],sql) +# +# db_conn.drop_database() +#--- + +act_2 = python_act('db_2', substitutions=substitutions_2) + +expected_stdout_2 = """ TMP_CREATE_DB_09.F00 RDB$FILE_SEQUENCE 1 RDB$FILE_START 301 @@ -73,11 +150,25 @@ expected_stdout_1 = """ RDB$FILE_SEQUENCE 3 RDB$FILE_START 901 RDB$FILE_LENGTH 300 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_2(act_2: Action): + script = f""" + create database '{act_2.db.dsn}' user '{act_2.db.user}' + password '{act_2.db.password}' LENGTH 300 + FILE '{act_2.db.db_path.with_name('TMP_CREATE_DB_09.F00')}' LENGTH 300 + FILE '{act_2.db.db_path.with_name('TMP_CREATE_DB_09.F01')}' LENGTH 300 + FILE '{act_2.db.db_path.with_name('TMP_CREATE_DB_09.F02')}' LENGTH 300 + ; + set list on ; + select + cast(rdb$file_name as varchar(100)) db_file + ,rdb$file_sequence + ,rdb$file_start + ,rdb$file_length + from rdb$files ; + """ + act_2.expected_stdout = expected_stdout_2 + act_2.isql(switches=[], input=script, connect_db=False) + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/database/create/test_10.py b/tests/functional/database/create/test_10.py index 9a8ff694..0e27049a 100644 --- a/tests/functional/database/create/test_10.py +++ b/tests/functional/database/create/test_10.py @@ -2,20 +2,20 @@ # # id: functional.database.create.10 # title: CREATE DATABASE - Multi file DB - starting -# decription: +# decription: # Database with four files. Additional files specified by STARTING AT. # Checked on: # 2.5.9.27126: OK, 1.610s. # 3.0.5.33086: OK, 2.047s. # 4.0.0.1378: OK, 7.266s. -# -# tracker_id: +# +# tracker_id: # min_versions: ['2.5.0'] # versions: 3.0, 4.0 -# qmid: +# qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -24,22 +24,22 @@ substitutions_1 = [('^.*TMP_CREATE_DB_10.F0', 'TMP_CREATE_DB_10.F0'), ('[ ]+', ' init_script_1 = """""" -db_1 = db_factory(sql_dialect=3, init=init_script_1) +db_1 = db_factory(sql_dialect=3, init=init_script_1, do_not_create=True) # test_script_1 #--- # dsn = "".join([context["server_location"], # context[db_path_property], # "TMP_CREATE_DB_10.FDB"]) -# +# # file1 = "".join([context[db_path_property], "TMP_CREATE_DB_10.F00"]) # file2 = "".join([context[db_path_property], "TMP_CREATE_DB_10.F01"]) # file3 = "".join([context[db_path_property], "TMP_CREATE_DB_10.F02"]) -# +# # createCommand = "CREATE DATABASE '%s' USER '%s' PASSWORD '%s' FILE '%s' STARTING AT PAGE 201 FILE '%s' STARTING AT PAGE 601 FILE '%s' STARTING AT PAGE 1001" % (dsn, user_name, user_password, file1, file2, file3) -# +# # db_conn= kdb.create_database(createCommand, int(sql_dialect)) -# +# # sql=''' # set list on; # select @@ -51,10 +51,11 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ; # ''' # runProgram('isql',[dsn,'-user',user_name,'-pas',user_password],sql) -# +# # db_conn.drop_database() #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ TMP_CREATE_DB_10.F00 @@ -69,12 +70,28 @@ expected_stdout_1 = """ RDB$FILE_SEQUENCE 3 RDB$FILE_START 1001 RDB$FILE_LENGTH 0 - """ +""" -@pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") +@pytest.mark.version('>=3.0,<4.0') +def test_1(act_1: Action): + script = f""" + create database '{act_2.db.dsn}' user '{act_2.db.user}' + password '{act_2.db.password}' + FILE '{act_2.db.db_path.with_name('TMP_CREATE_DB_10.F00')}' STARTING AT PAGE 201 + FILE '{act_2.db.db_path.with_name('TMP_CREATE_DB_10.F01')}' STARTING AT PAGE 601 + FILE '{act_2.db.db_path.with_name('TMP_CREATE_DB_10.F02')}' STARTING AT PAGE 1001 + ; + set list on ; + select + cast(rdb$file_name as varchar(100)) db_file + ,rdb$file_sequence + ,rdb$file_start + ,rdb$file_length + from rdb$files ; + """ + act_2.expected_stdout = expected_stdout_2 + act_2.isql(switches=[], input=script, connect_db=False) + assert act_2.clean_stdout == act_2.clean_expected_stdout # version: 4.0 @@ -84,22 +101,22 @@ substitutions_2 = [('^.*TMP_CREATE_DB_10.F0', 'TMP_CREATE_DB_10.F0'), ('[ ]+', ' init_script_2 = """""" -db_2 = db_factory(sql_dialect=3, init=init_script_2) +db_2 = db_factory(sql_dialect=3, init=init_script_2, do_not_create=True) # test_script_2 #--- # dsn = "".join([context["server_location"], # context[db_path_property], # "TMP_CREATE_DB_10.FDB"]) -# +# # file1 = "".join([context[db_path_property], "TMP_CREATE_DB_10.F00"]) # file2 = "".join([context[db_path_property], "TMP_CREATE_DB_10.F01"]) # file3 = "".join([context[db_path_property], "TMP_CREATE_DB_10.F02"]) -# +# # createCommand = "CREATE DATABASE '%s' USER '%s' PASSWORD '%s' FILE '%s' STARTING AT PAGE 301 FILE '%s' STARTING AT PAGE 801 FILE '%s' STARTING AT PAGE 1301" % (dsn, user_name, user_password, file1, file2, file3) -# +# # db_conn= kdb.create_database(createCommand, int(sql_dialect)) -# +# # sql=''' # set list on; # select @@ -111,10 +128,11 @@ db_2 = db_factory(sql_dialect=3, init=init_script_2) # ; # ''' # runProgram('isql',[dsn,'-user',user_name,'-pas',user_password],sql) -# +# # db_conn.drop_database() #--- -#act_2 = python_act('db_2', test_script_2, substitutions=substitutions_2) + +act_2 = python_act('db_2', substitutions=substitutions_2) expected_stdout_2 = """ TMP_CREATE_DB_10.F00 @@ -129,11 +147,25 @@ expected_stdout_2 = """ RDB$FILE_SEQUENCE 3 RDB$FILE_START 1301 RDB$FILE_LENGTH 0 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_2(db_2): - pytest.fail("Test not IMPLEMENTED") - - +def test_2(act_2: Action): + script = f""" + create database '{act_2.db.dsn}' user '{act_2.db.user}' + password '{act_2.db.password}' + FILE '{act_2.db.db_path.with_name('TMP_CREATE_DB_10.F00')}' STARTING AT PAGE 301 + FILE '{act_2.db.db_path.with_name('TMP_CREATE_DB_10.F01')}' STARTING AT PAGE 801 + FILE '{act_2.db.db_path.with_name('TMP_CREATE_DB_10.F02')}' STARTING AT PAGE 1301 + ; + set list on ; + select + cast(rdb$file_name as varchar(100)) db_file + ,rdb$file_sequence + ,rdb$file_start + ,rdb$file_length + from rdb$files ; + """ + act_2.expected_stdout = expected_stdout_2 + act_2.isql(switches=[], input=script, connect_db=False) + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/database/create/test_11.py b/tests/functional/database/create/test_11.py index cbda2882..aaed9f89 100644 --- a/tests/functional/database/create/test_11.py +++ b/tests/functional/database/create/test_11.py @@ -27,11 +27,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RDB$CHARACTER_SET_NAME NONE - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_binding_to_legacy.py b/tests/functional/datatypes/test_decfloat_binding_to_legacy.py index 10a2efb7..6379470b 100644 --- a/tests/functional/datatypes/test_decfloat_binding_to_legacy.py +++ b/tests/functional/datatypes/test_decfloat_binding_to_legacy.py @@ -2,8 +2,8 @@ # # id: functional.datatypes.decfloat_binding_to_legacy # title: Test ability for DECFLOAT values to be represented as other data types using LEGACY keyword. -# decription: -# We check here that values from DECFLOAT will be actually converted to legacy datatypes +# decription: +# We check here that values from DECFLOAT will be actually converted to legacy datatypes # according to following table from sql.extensions\\README.set_bind.md: # ---------------------------------------------------------- # | Native datatype | Legacy datatype | @@ -16,20 +16,20 @@ # ---------------------------------------------------------- # SQLDA must contain the same datatypes when we use either explicit rule or LEGACY keyword. # Checked on 4.0.0.1691 SS: 1.113s. -# +# # WARNING, 11.03.2020. # Test verifies binding of TIME WITH TIMEZONE data and uses America/Los_Angeles timezone. # But there is daylight saving time in the USA, they change clock at the begining of March. -# +# # For this reason query like: "select time '10:00 America/Los_Angeles' from ..." will return # different values depending on current date. For example, if we are in Moscow timezone then -# returned value will be either 20:00 in February or 21:00 in March. +# returned value will be either 20:00 in February or 21:00 in March. # Result for other timezone (e.g. Tokyo) will be differ, etc. # For this reason, special replacement will be done in 'substitution' section: we replace # value of hours with '??' because it is no matter what's the time there, we have to ensure # only the ability to work with such time using SET BIND clause. -# -# tracker_id: +# +# tracker_id: # min_versions: ['4.0.0'] # versions: 4.0 # qmid: None @@ -88,7 +88,7 @@ test_script_1 = """ select timestamp '2018-01-01 12:00 GMT' as "check_bind_timestamp_with_zone_to_legacy" from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -122,12 +122,11 @@ expected_stdout_1 = """ 01: sqltype: 510 TIMESTAMP scale: 0 subtype: 0 len: 8 check_bind_timestamp_with_zone_to_legacy 2018-01-01 ??:00:00.0000 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): - act_1.charset = 'NONE' act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_binding_to_other_types.py b/tests/functional/datatypes/test_decfloat_binding_to_other_types.py index 001305e6..303a0d7e 100644 --- a/tests/functional/datatypes/test_decfloat_binding_to_other_types.py +++ b/tests/functional/datatypes/test_decfloat_binding_to_other_types.py @@ -89,7 +89,7 @@ test_script_1 = """ select cast( 1701411834604692317316873037158841.05727 as decfloat(34)) as decfloat_to_int128 from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -115,11 +115,11 @@ expected_stdout_1 = """ 01: sqltype: 32752 INT128 scale: 0 subtype: 0 len: 16 : name: CAST alias: DECFLOAT_TO_INT128 DECFLOAT_TO_INT128 1701411834604692317316873037158841 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_boundary_values.py b/tests/functional/datatypes/test_decfloat_boundary_values.py index 733645f9..e5ebe6da 100644 --- a/tests/functional/datatypes/test_decfloat_boundary_values.py +++ b/tests/functional/datatypes/test_decfloat_boundary_values.py @@ -57,7 +57,7 @@ test_script_1 = """ ,c.max_df34_for_pos_scope - c.max_df34_for_pos_scope as zero_max_df34_for_pos from c ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -78,11 +78,11 @@ expected_stdout_1 = """ ZERO_MAX_DF34_FOR_NEG 0E-6144 ZERO_MIN_DF34_FOR_POS 0E-6144 ZERO_MAX_DF34_FOR_POS 0E+6111 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_columns_handlng.py b/tests/functional/datatypes/test_decfloat_columns_handlng.py index 632b02c1..3369442d 100644 --- a/tests/functional/datatypes/test_decfloat_columns_handlng.py +++ b/tests/functional/datatypes/test_decfloat_columns_handlng.py @@ -107,7 +107,7 @@ test_script_1 = """ set count off; select * from test3; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -123,7 +123,7 @@ expected_stdout_1 = """ N 9.999999999999999999999999999999999E+6144 X 9.999999999999999E+384 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 42000 unsuccessful metadata update @@ -132,13 +132,14 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 22003 Decimal float overflow. The exponent of a result is greater than the magnitude allowed. - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_ddl_indices.py b/tests/functional/datatypes/test_decfloat_ddl_indices.py index bc868ea2..cd49a9c6 100644 --- a/tests/functional/datatypes/test_decfloat_ddl_indices.py +++ b/tests/functional/datatypes/test_decfloat_ddl_indices.py @@ -119,7 +119,7 @@ test_script_1 = """ insert into test default values; select * from test where fff > 0; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -141,11 +141,11 @@ expected_stdout_1 = """ F15 1.239999999999999999999955600000000E+1022 F16 -1.239999999999999999999955600000000E+1022 FFF 1.115999999999999999999960040000000E+1023 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_df16_alignment.py b/tests/functional/datatypes/test_decfloat_df16_alignment.py index d8fc678c..281a590a 100644 --- a/tests/functional/datatypes/test_decfloat_df16_alignment.py +++ b/tests/functional/datatypes/test_decfloat_df16_alignment.py @@ -39,7 +39,7 @@ test_script_1 = """ ); commit; insert into test default values returning a,x34,y16,u34,v16,w; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -50,11 +50,11 @@ expected_stdout_1 = """ U34 9.999999999999999999999999999999999E+6144 V16 9.999999999999999E+384 W | - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_exceptions_trapping.py b/tests/functional/datatypes/test_decfloat_exceptions_trapping.py index 09888b77..620c209b 100644 --- a/tests/functional/datatypes/test_decfloat_exceptions_trapping.py +++ b/tests/functional/datatypes/test_decfloat_exceptions_trapping.py @@ -102,7 +102,7 @@ test_script_1 = """ -- Decimal float invalid operation. An indeterminant error occurred during an operation. select cast('34ffd' as decfloat(16)) nan_when_df_trap_inv_op from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -113,7 +113,7 @@ expected_stdout_1 = """ ADD_HUGES_WHEN_DF_TRAP_EMPTY Infinity NAN_WHEN_DF_TRAP_EMPTY NaN - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 22012 Decimal float divide by zero. The code attempted to divide a DECFLOAT value by zero. @@ -129,13 +129,14 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 22000 Decimal float invalid operation. An indeterminant error occurred during an operation. - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_literal_interpr.py b/tests/functional/datatypes/test_decfloat_literal_interpr.py index a3f1d3b6..771e78d4 100644 --- a/tests/functional/datatypes/test_decfloat_literal_interpr.py +++ b/tests/functional/datatypes/test_decfloat_literal_interpr.py @@ -48,7 +48,7 @@ test_script_1 = """ ,9223372036854775808 as behind_bigint_min from rdb$database; -- ==> FAILS on 3.0; must be interpreted as DECFLOAT(34) on 4.0.0 */ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -65,11 +65,11 @@ expected_stdout_1 = """ : name: CONSTANT alias: ALMOST_ZERO_DECFLOAT_34 : table: owner: ALMOST_ZERO_DECFLOAT_34 1E-309 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_literal_length.py b/tests/functional/datatypes/test_decfloat_literal_length.py index 74036c0e..6c005119 100644 --- a/tests/functional/datatypes/test_decfloat_literal_length.py +++ b/tests/functional/datatypes/test_decfloat_literal_length.py @@ -102,7 +102,7 @@ test_script_1 = """ from rdb$database ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -170,7 +170,7 @@ expected_stdout_1 = """ : table: owner: CONSTANT -1.230000000000000000000055500000001E+1022 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 22001 arithmetic exception, numeric overflow, or string truncation @@ -207,13 +207,14 @@ expected_stderr_1 = """ -string right truncation -Implementation limit exceeded -expected length 1024, actual 1025 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_loose_accuracy.py b/tests/functional/datatypes/test_decfloat_loose_accuracy.py index 1b124653..e057cc74 100644 --- a/tests/functional/datatypes/test_decfloat_loose_accuracy.py +++ b/tests/functional/datatypes/test_decfloat_loose_accuracy.py @@ -40,18 +40,18 @@ test_script_1 = """ as addition_with_e34 from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ADDITION_WITH_E33 1 ADDITION_WITH_E34 0E+1 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_min_distinguish.py b/tests/functional/datatypes/test_decfloat_min_distinguish.py index 45fe35f6..f6cc3f3a 100644 --- a/tests/functional/datatypes/test_decfloat_min_distinguish.py +++ b/tests/functional/datatypes/test_decfloat_min_distinguish.py @@ -45,7 +45,7 @@ test_script_1 = """ end ^ set term ;^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -10311,11 +10311,11 @@ expected_stdout_1 = """ 10258 2E-6176 1E-6176 10259 1E-6176 0E-6176 10260 0E-6176 0E-6176 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_nan_and_infinity_comparison.py b/tests/functional/datatypes/test_decfloat_nan_and_infinity_comparison.py index efd8e971..49b88f54 100644 --- a/tests/functional/datatypes/test_decfloat_nan_and_infinity_comparison.py +++ b/tests/functional/datatypes/test_decfloat_nan_and_infinity_comparison.py @@ -41,7 +41,7 @@ test_script_1 = """ from ( select 1/1e-9999 as i, cast('34ffd' as decfloat(16)) as n from rdb$database ); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -56,11 +56,11 @@ expected_stdout_1 = """ IS_NAN_MORE_THAN_NAN_MINUS_INFINITY Records affected: 1 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_parsing_scaled_integers_and_bigint_max_min.py b/tests/functional/datatypes/test_decfloat_parsing_scaled_integers_and_bigint_max_min.py index 95e29e0d..86641f6a 100644 --- a/tests/functional/datatypes/test_decfloat_parsing_scaled_integers_and_bigint_max_min.py +++ b/tests/functional/datatypes/test_decfloat_parsing_scaled_integers_and_bigint_max_min.py @@ -59,7 +59,7 @@ test_script_1 = """ select * from v_test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -84,11 +84,11 @@ expected_stdout_1 = """ BIGINT_MIN -9.223372036854776e+18 BIGINT_MAX 9.223372036854776e+18 DROB1 0.01234567891234568 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_round_modes.py b/tests/functional/datatypes/test_decfloat_round_modes.py index 84c5030c..63eddb37 100644 --- a/tests/functional/datatypes/test_decfloat_round_modes.py +++ b/tests/functional/datatypes/test_decfloat_round_modes.py @@ -100,7 +100,7 @@ test_script_1 = """ set decfloat round reround; select 'reround' as round_mode, v.* from v_test2 v; -- +80.44; -80.44 - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -177,11 +177,11 @@ expected_stdout_1 = """ R6 -12.34 RX 80.44 RY -80.44 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_scalar_functions.py b/tests/functional/datatypes/test_decfloat_scalar_functions.py index 430f2a44..9ef1fe2c 100644 --- a/tests/functional/datatypes/test_decfloat_scalar_functions.py +++ b/tests/functional/datatypes/test_decfloat_scalar_functions.py @@ -80,7 +80,7 @@ test_script_1 = """ select sign(-power_2_127_dec_1) as sign_a, sign(-power_2_127_exact) as sign_b from test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -108,11 +108,11 @@ expected_stdout_1 = """ SQRT_B 13043817825332782212.34957180625251 SIGN_A -1 SIGN_B -1 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_single_bit_in_representation.py b/tests/functional/datatypes/test_decfloat_single_bit_in_representation.py index 0f9853a2..88d19e1f 100644 --- a/tests/functional/datatypes/test_decfloat_single_bit_in_representation.py +++ b/tests/functional/datatypes/test_decfloat_single_bit_in_representation.py @@ -45,7 +45,7 @@ test_script_1 = """ ,exp( cast( -14221.4586815117860898045324562520950 as decfloat) ) as df2 from rdb$database ); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -60,11 +60,11 @@ expected_stdout_1 = """ SUM_CMP_RESULT_2 DIVISION_RESULT_2 1 SUM_AND_CMP_RESULT_2 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decfloat_special_functions.py b/tests/functional/datatypes/test_decfloat_special_functions.py index a1ebb506..63bc1287 100644 --- a/tests/functional/datatypes/test_decfloat_special_functions.py +++ b/tests/functional/datatypes/test_decfloat_special_functions.py @@ -275,7 +275,7 @@ test_script_1 = """ ) ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -424,11 +424,11 @@ expected_stdout_1 = """ QDF1 1.23456789012345678901234567890E+33 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_decimal_declared_scale.py b/tests/functional/datatypes/test_decimal_declared_scale.py index 88080af5..13a0ba50 100644 --- a/tests/functional/datatypes/test_decimal_declared_scale.py +++ b/tests/functional/datatypes/test_decimal_declared_scale.py @@ -41,7 +41,7 @@ test_script_1 = """ insert into test(id, a, b) values( 1, '9.123456789012345678', '999999.999' ); select * from test order by id; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -57,11 +57,11 @@ expected_stdout_1 = """ ID 1 A 9.123456789012345678 B 999999.999 - """ +""" @pytest.mark.version('>=2.5.8') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_dp_single_bit_in_representation.py b/tests/functional/datatypes/test_dp_single_bit_in_representation.py index f3981ef0..da401dd1 100644 --- a/tests/functional/datatypes/test_dp_single_bit_in_representation.py +++ b/tests/functional/datatypes/test_dp_single_bit_in_representation.py @@ -33,7 +33,7 @@ test_script_1 = """ from ( select exp(-744.0346068132731393) as e1, exp(-745.1332191019410399) as e2 from rdb$database ); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -45,11 +45,11 @@ expected_stdout_1 = """ E1_EQU_E2 equals E1_DIV_E2 1.000000000000000 E2_DIV_E2 1.000000000000000 - """ +""" @pytest.mark.version('>=2.5.8') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_int128_binary_operations.py b/tests/functional/datatypes/test_int128_binary_operations.py index d831e1ca..5e8c1d8e 100644 --- a/tests/functional/datatypes/test_int128_binary_operations.py +++ b/tests/functional/datatypes/test_int128_binary_operations.py @@ -48,7 +48,7 @@ test_script_1 = """ select bin_xor(bi_least, bi_great) from test_i128; -- expected: -1 select bin_xor(bi_least, bi_great) from test_i128; -- expected: -1 select bin_xor(bi_least, bin_xor(bi_least, bi_great)) from test_i128; -- expected: 170141183460469231731687303715884105727 - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -64,11 +64,11 @@ expected_stdout_1 = """ -1 -1 170141183460469231731687303715884105727 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/datatypes/test_int128_math_functions.py b/tests/functional/datatypes/test_int128_math_functions.py index f6925fef..f1af6dd1 100644 --- a/tests/functional/datatypes/test_int128_math_functions.py +++ b/tests/functional/datatypes/test_int128_math_functions.py @@ -112,7 +112,7 @@ test_script_1 = """ -- 1.7014118346046923071280032718565510658506726293419382...*10E38 -- value for exp(88.02969193111305429) in wolfram select cast( exp(88.02969193111305429) as int128 ) as math_exp_cast_to_int128 from test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -143,11 +143,11 @@ expected_stdout_1 = """ MATH_ATAN 1.570796326794897 MATH_ATAN2 -0.7853981633974483 MATH_EXP_CAST_TO_INT128 170141183460468400595186318658326495232 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/cte/test_01.py b/tests/functional/dml/cte/test_01.py index 4cf40c03..6d14aee4 100644 --- a/tests/functional/dml/cte/test_01.py +++ b/tests/functional/dml/cte/test_01.py @@ -66,7 +66,6 @@ left join repartition_by_age quarentenaire on d.id_department = quarentenaire.id_department and quarentenaire.trancheage = 4 ; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -76,12 +75,11 @@ NAME JEUNE TRENTENAIRE QUANT ==================== ===================== ===================== ===================== service compta 1 2 1 production 1 3 1 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/cte/test_02.py b/tests/functional/dml/cte/test_02.py index 3bdcdb15..99994877 100644 --- a/tests/functional/dml/cte/test_02.py +++ b/tests/functional/dml/cte/test_02.py @@ -79,7 +79,6 @@ FROM TYPE_PRODUCT_RECUR T left join COUNT_BY_TYPE C on C.ID_TYPE_PRODUCT = T.id_type_product; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -92,12 +91,11 @@ ID_TYPE_PRODUCT NAME COUNT_P 4 - FILM ACTION 1 5 - FILM ROMANCE 2 2 + BOOK - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/delete/test_02.py b/tests/functional/dml/delete/test_02.py index a7cfebf2..9b4cff69 100644 --- a/tests/functional/dml/delete/test_02.py +++ b/tests/functional/dml/delete/test_02.py @@ -33,11 +33,11 @@ expected_stdout_1 = """ ID ============ 10 - 10""" +10""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/delete/test_03.py b/tests/functional/dml/delete/test_03.py index 93559271..72f91731 100644 --- a/tests/functional/dml/delete/test_03.py +++ b/tests/functional/dml/delete/test_03.py @@ -33,11 +33,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ID ============ - """ +""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/insert/test_01.py b/tests/functional/dml/insert/test_01.py index accf723a..1bb6d157 100644 --- a/tests/functional/dml/insert/test_01.py +++ b/tests/functional/dml/insert/test_01.py @@ -27,7 +27,6 @@ commit; SELECT * FROM EMPLOYEE; insert into employee DEFAULT VALUES RETURNING prenom,sex; SELECT * FROM EMPLOYEE; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -47,12 +46,11 @@ PRENOM SEX ==================== ====== anonymous M anonymous M - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/join/test_01.py b/tests/functional/dml/join/test_01.py index ce713059..e6cce9bf 100644 --- a/tests/functional/dml/join/test_01.py +++ b/tests/functional/dml/join/test_01.py @@ -36,12 +36,11 @@ PRENOM NAME ==================== ==================== benoit somme tom pas de calais - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/join/test_02.py b/tests/functional/dml/join/test_02.py index a6077e36..8214c8b3 100644 --- a/tests/functional/dml/join/test_02.py +++ b/tests/functional/dml/join/test_02.py @@ -35,12 +35,11 @@ PRENOM NAME ==================== ==================== benoit somme tom pas de calais - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/merge/test_01.py b/tests/functional/dml/merge/test_01.py index 49acd35e..689fe57a 100644 --- a/tests/functional/dml/merge/test_01.py +++ b/tests/functional/dml/merge/test_01.py @@ -51,12 +51,11 @@ expected_stdout_1 = """ 1 1NOMT1 2 2NOMT2 3 3NOMT2 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/merge/test_02.py b/tests/functional/dml/merge/test_02.py index 1687c06d..7fb5020a 100644 --- a/tests/functional/dml/merge/test_02.py +++ b/tests/functional/dml/merge/test_02.py @@ -1,7 +1,7 @@ #coding:utf-8 # # id: functional.dml.merge.02 -# title: merge STATEMENT can have only one RETURNING after all WHEN sub-statements. +# title: merge STATEMENT can have only one RETURNING which must be after all WHEN sub-statements. # decription: # tracker_id: # min_versions: [] @@ -26,12 +26,18 @@ test_script_1 = """ recreate table ta(id int primary key, x int, y int); recreate table tb(id int primary key, x int, y int); commit; + + insert into ta(id, x, y) values(1, 10, 100); + insert into tb(id, x, y) values(1, 10, 100); + commit; -- [ 1 ] must PASS: merge into tb t using ta s on s.id = t.id - when NOT matched then insert values(1,2,3) ---------------- (a) - when matched then delete returning old.id, old.x, old.y --- (b) + when NOT matched then insert values(-s.id, -s.x, -s.y) ------------------------- (a) + when matched then + delete + returning old.id as deleted_id, old.x as deleted_x, old.y as deleted_y ----- (b) ; rollback; @@ -40,33 +46,32 @@ test_script_1 = """ merge into tb t using ta s on s.id = t.id - when matched then delete returning old.id, old.x, old.y --- (b) - when NOT matched then insert values(1,2,3) ---------------- (a) + when matched then delete returning old.id, old.x, old.y ----------------------- (b) + when NOT matched then insert values(-s.id, -s.x, -s.y) ------------------------ (a) ; - - rollback; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ - ID - X - Y - """ + DELETED_ID 1 + DELETED_X 10 + DELETED_Y 100 +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 42000 Dynamic SQL Error -SQL error code = -104 -Token unknown - line 4, column 5 -when - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/merge/test_03.py b/tests/functional/dml/merge/test_03.py index 07ffdace..93a36fb9 100644 --- a/tests/functional/dml/merge/test_03.py +++ b/tests/functional/dml/merge/test_03.py @@ -62,7 +62,7 @@ test_script_1 = """ ; rollback; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -74,20 +74,21 @@ expected_stdout_1 = """ OLD_X 100 NEW_ID -2 NEW_X -101 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 42S22 Dynamic SQL Error -SQL error code = -206 -Column unknown -TEST_B.ID - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/update_or_insert/test_01.py b/tests/functional/dml/update_or_insert/test_01.py index 8f099ce8..49599d8b 100644 --- a/tests/functional/dml/update_or_insert/test_01.py +++ b/tests/functional/dml/update_or_insert/test_01.py @@ -23,8 +23,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """UPDATE OR INSERT INTO TMPTEST(id, name) VALUES (1,'bob' ); select name from TMPTEST where id =1; UPDATE OR INSERT INTO TMPTEST(id, name) VALUES (1,'ivan' ); -select name from TMPTEST where id =1; -""" +select name from TMPTEST where id =1;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -37,12 +36,11 @@ bob NAME ==================== ivan - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/update_or_insert/test_02.py b/tests/functional/dml/update_or_insert/test_02.py index d3b4a7cf..5338476b 100644 --- a/tests/functional/dml/update_or_insert/test_02.py +++ b/tests/functional/dml/update_or_insert/test_02.py @@ -34,8 +34,7 @@ AS END^ -SET TERM ; ^ -""" +SET TERM ; ^""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -43,12 +42,11 @@ expected_stdout_1 = """ V ============ 1 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/dml/update_or_insert/test_03.py b/tests/functional/dml/update_or_insert/test_03.py index 25a62841..cf8a65c8 100644 --- a/tests/functional/dml/update_or_insert/test_03.py +++ b/tests/functional/dml/update_or_insert/test_03.py @@ -43,18 +43,17 @@ ivan NAME ==================== bob - """ expected_stderr_1 = """Statement failed, SQLSTATE = 22000 Dynamic SQL Error --Primary key required on table TMPTEST_NOKEY -""" +-Primary key required on table TMPTEST_NOKEY""" @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/alter/test_01.py b/tests/functional/domain/alter/test_01.py index f67f0067..72784f1d 100644 --- a/tests/functional/domain/alter/test_01.py +++ b/tests/functional/domain/alter/test_01.py @@ -29,7 +29,7 @@ test_script_1 = """ set blob all; select rdb$field_name, rdb$default_source from rdb$fields where rdb$field_name=upper('test'); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -37,11 +37,11 @@ expected_stdout_1 = """ RDB$FIELD_NAME TEST RDB$DEFAULT_SOURCE 2:1e1 default 'test string' - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/alter/test_02.py b/tests/functional/domain/alter/test_02.py index 9be1a686..f4833e96 100644 --- a/tests/functional/domain/alter/test_02.py +++ b/tests/functional/domain/alter/test_02.py @@ -30,18 +30,18 @@ test_script_1 = """ select rdb$field_name, rdb$default_source from rdb$fields where rdb$field_name = upper('test'); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RDB$FIELD_NAME TEST RDB$DEFAULT_SOURCE - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/alter/test_03.py b/tests/functional/domain/alter/test_03.py index 55a4b4db..da599c94 100644 --- a/tests/functional/domain/alter/test_03.py +++ b/tests/functional/domain/alter/test_03.py @@ -29,18 +29,18 @@ test_script_1 = """ set list on; set blob all; select rdb$field_name, rdb$validation_source from rdb$fields where rdb$field_name=upper('test'); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RDB$FIELD_NAME TEST check (value like 'te%') - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/alter/test_04.py b/tests/functional/domain/alter/test_04.py index ce9d9883..47a4c5ba 100644 --- a/tests/functional/domain/alter/test_04.py +++ b/tests/functional/domain/alter/test_04.py @@ -30,18 +30,18 @@ test_script_1 = """ select rdb$field_name, rdb$validation_source from rdb$fields where rdb$field_name = upper('test'); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RDB$FIELD_NAME TEST RDB$VALIDATION_SOURCE - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/alter/test_05.py b/tests/functional/domain/alter/test_05.py index b44312be..0ea71cc0 100644 --- a/tests/functional/domain/alter/test_05.py +++ b/tests/functional/domain/alter/test_05.py @@ -28,12 +28,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 unsuccessful metadata update -ALTER DOMAIN NOTEXISTS failed -Domain not found - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/domain/create/test_01.py b/tests/functional/domain/create/test_01.py index 3deba2ed..130595a8 100644 --- a/tests/functional/domain/create/test_01.py +++ b/tests/functional/domain/create/test_01.py @@ -21,17 +21,15 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """CREATE DOMAIN test SMALLINT; -SHOW DOMAIN test; -""" +SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST SMALLINT Nullable -""" +expected_stdout_1 = """TEST SMALLINT Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_02.py b/tests/functional/domain/create/test_02.py index 544c263c..4ae19cad 100644 --- a/tests/functional/domain/create/test_02.py +++ b/tests/functional/domain/create/test_02.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST INTEGER Nullable -""" +expected_stdout_1 = """TEST INTEGER Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_03.py b/tests/functional/domain/create/test_03.py index 46533c8d..ded4e7ce 100644 --- a/tests/functional/domain/create/test_03.py +++ b/tests/functional/domain/create/test_03.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST INTEGER Nullable -""" +expected_stdout_1 = """TEST INTEGER Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_04.py b/tests/functional/domain/create/test_04.py index ab3f6cd4..492d5436 100644 --- a/tests/functional/domain/create/test_04.py +++ b/tests/functional/domain/create/test_04.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST FLOAT Nullable -""" +expected_stdout_1 = """TEST FLOAT Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_05.py b/tests/functional/domain/create/test_05.py index a0c3d9a4..69f6210b 100644 --- a/tests/functional/domain/create/test_05.py +++ b/tests/functional/domain/create/test_05.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST DOUBLE PRECISION Nullable -""" +expected_stdout_1 = """TEST DOUBLE PRECISION Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_06.py b/tests/functional/domain/create/test_06.py index 881097c4..15223789 100644 --- a/tests/functional/domain/create/test_06.py +++ b/tests/functional/domain/create/test_06.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST ARRAY OF [7] - DOUBLE PRECISION Nullable -""" +DOUBLE PRECISION Nullable""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_07.py b/tests/functional/domain/create/test_07.py index af5646d9..5301a831 100644 --- a/tests/functional/domain/create/test_07.py +++ b/tests/functional/domain/create/test_07.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST DATE Nullable -""" +expected_stdout_1 = """TEST DATE Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_08.py b/tests/functional/domain/create/test_08.py index dd663333..36712de4 100644 --- a/tests/functional/domain/create/test_08.py +++ b/tests/functional/domain/create/test_08.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST TIME Nullable -""" +expected_stdout_1 = """TEST TIME Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_09.py b/tests/functional/domain/create/test_09.py index e7935ded..24616d27 100644 --- a/tests/functional/domain/create/test_09.py +++ b/tests/functional/domain/create/test_09.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST TIMESTAMP Nullable -""" +expected_stdout_1 = """TEST TIMESTAMP Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_10.py b/tests/functional/domain/create/test_10.py index f5e3edbe..1c5bd74b 100644 --- a/tests/functional/domain/create/test_10.py +++ b/tests/functional/domain/create/test_10.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST ARRAY OF [1024] - TIMESTAMP Nullable -""" +TIMESTAMP Nullable""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_11.py b/tests/functional/domain/create/test_11.py index 4a96d173..70ae43bb 100644 --- a/tests/functional/domain/create/test_11.py +++ b/tests/functional/domain/create/test_11.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST DECIMAL(18, 4) Nullable -""" +expected_stdout_1 = """TEST DECIMAL(18, 4) Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_12.py b/tests/functional/domain/create/test_12.py index 95468e31..6b67ec1a 100644 --- a/tests/functional/domain/create/test_12.py +++ b/tests/functional/domain/create/test_12.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST ARRAY OF [32768] - DECIMAL(18, 18) Nullable -""" +DECIMAL(18, 18) Nullable""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_13.py b/tests/functional/domain/create/test_13.py index 11dfc468..127f1f06 100644 --- a/tests/functional/domain/create/test_13.py +++ b/tests/functional/domain/create/test_13.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST NUMERIC(18, 18) Nullable -""" +expected_stdout_1 = """TEST NUMERIC(18, 18) Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_14.py b/tests/functional/domain/create/test_14.py index fd086dcc..cead26b5 100644 --- a/tests/functional/domain/create/test_14.py +++ b/tests/functional/domain/create/test_14.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST ARRAY OF [32768] - NUMERIC(18, 18) Nullable -""" +NUMERIC(18, 18) Nullable""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_15.py b/tests/functional/domain/create/test_15.py index ea7c0775..06cf62fb 100644 --- a/tests/functional/domain/create/test_15.py +++ b/tests/functional/domain/create/test_15.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST CHAR(300) Nullable -""" +expected_stdout_1 = """TEST CHAR(300) Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_16.py b/tests/functional/domain/create/test_16.py index 58212442..9dc6ff89 100644 --- a/tests/functional/domain/create/test_16.py +++ b/tests/functional/domain/create/test_16.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST CHAR(32767) Nullable -""" +expected_stdout_1 = """TEST CHAR(32767) Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_17.py b/tests/functional/domain/create/test_17.py index 9424ba16..7f0b9d00 100644 --- a/tests/functional/domain/create/test_17.py +++ b/tests/functional/domain/create/test_17.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST VARCHAR(1) Nullable -""" +expected_stdout_1 = """TEST VARCHAR(1) Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_18.py b/tests/functional/domain/create/test_18.py index 55cf218b..3dd1dc8e 100644 --- a/tests/functional/domain/create/test_18.py +++ b/tests/functional/domain/create/test_18.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST VARCHAR(32765) Nullable -""" +expected_stdout_1 = """TEST VARCHAR(32765) Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_19.py b/tests/functional/domain/create/test_19.py index 0e75e3fe..bc13718e 100644 --- a/tests/functional/domain/create/test_19.py +++ b/tests/functional/domain/create/test_19.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST ARRAY OF [40000] - VARCHAR(32765) Nullable -""" +VARCHAR(32765) Nullable""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_20.py b/tests/functional/domain/create/test_20.py index 3ee1274d..d113dae6 100644 --- a/tests/functional/domain/create/test_20.py +++ b/tests/functional/domain/create/test_20.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST VARCHAR(32765) CHARACTER SET ASCII Nullable -""" +expected_stdout_1 = """TEST VARCHAR(32765) CHARACTER SET ASCII Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_21.py b/tests/functional/domain/create/test_21.py index 6b8b9ee9..d3aa7ac5 100644 --- a/tests/functional/domain/create/test_21.py +++ b/tests/functional/domain/create/test_21.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST CHAR(32767) CHARACTER SET ISO8859_1 Nullable -""" +expected_stdout_1 = """TEST CHAR(32767) CHARACTER SET ISO8859_1 Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_22.py b/tests/functional/domain/create/test_22.py index 0a75601a..ac1b4364 100644 --- a/tests/functional/domain/create/test_22.py +++ b/tests/functional/domain/create/test_22.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST CHAR(32767) CHARACTER SET ISO8859_1 Nullable -""" +expected_stdout_1 = """TEST CHAR(32767) CHARACTER SET ISO8859_1 Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_23.py b/tests/functional/domain/create/test_23.py index 410fced4..5aa769f1 100644 --- a/tests/functional/domain/create/test_23.py +++ b/tests/functional/domain/create/test_23.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST CHAR(32767) CHARACTER SET ISO8859_1 Nullable -""" +expected_stdout_1 = """TEST CHAR(32767) CHARACTER SET ISO8859_1 Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_24.py b/tests/functional/domain/create/test_24.py index 255522ce..acab9206 100644 --- a/tests/functional/domain/create/test_24.py +++ b/tests/functional/domain/create/test_24.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST VARCHAR(32765) CHARACTER SET ISO8859_1 Nullable -""" +expected_stdout_1 = """TEST VARCHAR(32765) CHARACTER SET ISO8859_1 Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_25.py b/tests/functional/domain/create/test_25.py index f0e10f63..d3be76f9 100644 --- a/tests/functional/domain/create/test_25.py +++ b/tests/functional/domain/create/test_25.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST ARRAY OF [30, 30, 30] - VARCHAR(32765) CHARACTER SET ISO8859_1 Nullable -""" +VARCHAR(32765) CHARACTER SET ISO8859_1 Nullable""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_26.py b/tests/functional/domain/create/test_26.py index ec5e8eeb..8fa9acfa 100644 --- a/tests/functional/domain/create/test_26.py +++ b/tests/functional/domain/create/test_26.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST BLOB segment 80, subtype BINARY Nullable -""" +expected_stdout_1 = """TEST BLOB segment 80, subtype BINARY Nullable""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_27.py b/tests/functional/domain/create/test_27.py index 298f734f..dab4b9c3 100644 --- a/tests/functional/domain/create/test_27.py +++ b/tests/functional/domain/create/test_27.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST BLOB segment 80, subtype TEXT Nullable -""" +expected_stdout_1 = """TEST BLOB segment 80, subtype TEXT Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_28.py b/tests/functional/domain/create/test_28.py index bfd3d6f2..c780e4c0 100644 --- a/tests/functional/domain/create/test_28.py +++ b/tests/functional/domain/create/test_28.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST BLOB segment 80, subtype TEXT Nullable -""" +expected_stdout_1 = """TEST BLOB segment 80, subtype TEXT Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_29.py b/tests/functional/domain/create/test_29.py index 3b4795fc..5fe08446 100644 --- a/tests/functional/domain/create/test_29.py +++ b/tests/functional/domain/create/test_29.py @@ -31,5 +31,5 @@ expected_stdout_1 = """TEST BLOB segment 244, subtype def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_30.py b/tests/functional/domain/create/test_30.py index b99da3ea..074a09c9 100644 --- a/tests/functional/domain/create/test_30.py +++ b/tests/functional/domain/create/test_30.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST BLOB segment 80, subtype TEXT CHARACTER SET BIG_5 Nullable -""" +expected_stdout_1 = """TEST BLOB segment 80, subtype TEXT CHARACTER SET BIG_5 Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_31.py b/tests/functional/domain/create/test_31.py index f13ad000..9dd2ebcc 100644 --- a/tests/functional/domain/create/test_31.py +++ b/tests/functional/domain/create/test_31.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST BLOB segment 349, subtype TEXT Nullable -""" +expected_stdout_1 = """TEST BLOB segment 349, subtype TEXT Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_32.py b/tests/functional/domain/create/test_32.py index d8950e03..fcd06d2f 100644 --- a/tests/functional/domain/create/test_32.py +++ b/tests/functional/domain/create/test_32.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST VARCHAR(32) Nullable - DEFAULT 'def_value' -""" +DEFAULT 'def_value'""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_33.py b/tests/functional/domain/create/test_33.py index b274c51e..b9d9d734 100644 --- a/tests/functional/domain/create/test_33.py +++ b/tests/functional/domain/create/test_33.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST VARCHAR(32) Nullable - DEFAULT NULL -""" +DEFAULT NULL""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_34.py b/tests/functional/domain/create/test_34.py index 6e875f90..a1c79205 100644 --- a/tests/functional/domain/create/test_34.py +++ b/tests/functional/domain/create/test_34.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST VARCHAR(32) Nullable - DEFAULT USER -""" +DEFAULT USER""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_35.py b/tests/functional/domain/create/test_35.py index 3fd7d563..c68e9fe2 100644 --- a/tests/functional/domain/create/test_35.py +++ b/tests/functional/domain/create/test_35.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST VARCHAR(32) Nullable - DEFAULT CURRENT_USER -""" +DEFAULT CURRENT_USER""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_36.py b/tests/functional/domain/create/test_36.py index fb3131ea..8e66674e 100644 --- a/tests/functional/domain/create/test_36.py +++ b/tests/functional/domain/create/test_36.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST VARCHAR(32) Nullable - DEFAULT CURRENT_ROLE -""" +DEFAULT CURRENT_ROLE""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_37.py b/tests/functional/domain/create/test_37.py index 3f6589e9..352daacf 100644 --- a/tests/functional/domain/create/test_37.py +++ b/tests/functional/domain/create/test_37.py @@ -25,12 +25,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST VARCHAR(32) Not Null -""" +expected_stdout_1 = """TEST VARCHAR(32) Not Null""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_38.py b/tests/functional/domain/create/test_38.py index a30a4fb8..62f3c3b9 100644 --- a/tests/functional/domain/create/test_38.py +++ b/tests/functional/domain/create/test_38.py @@ -26,12 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST VARCHAR(32) Nullable - CHECK(VALUE LIKE 'ER%') -""" +CHECK(VALUE LIKE 'ER%')""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_39.py b/tests/functional/domain/create/test_39.py index d6371653..9fe05ab3 100644 --- a/tests/functional/domain/create/test_39.py +++ b/tests/functional/domain/create/test_39.py @@ -26,11 +26,11 @@ SHOW DOMAIN test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST VARCHAR(32) CHARACTER SET DOS437 Nullable - COLLATE DB_ITA437""" +COLLATE DB_ITA437""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_40.py b/tests/functional/domain/create/test_40.py index c256f3b7..975110d0 100644 --- a/tests/functional/domain/create/test_40.py +++ b/tests/functional/domain/create/test_40.py @@ -28,11 +28,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEST VARCHAR(32) CHARACTER SET DOS437 Not Null DEFAULT USER CHECK(VALUE LIKE 'ER%') - COLLATE DB_ITA437""" +COLLATE DB_ITA437""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/create/test_41.py b/tests/functional/domain/create/test_41.py index d71cc7de..507b5089 100644 --- a/tests/functional/domain/create/test_41.py +++ b/tests/functional/domain/create/test_41.py @@ -28,12 +28,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 23000 unsuccessful metadata update -CREATE DOMAIN TEST failed -violation of PRIMARY or UNIQUE KEY constraint "RDB$INDEX_2" on table "RDB$FIELDS" --Problematic key value is ("RDB$FIELD_NAME" = 'TEST') -""" +-Problematic key value is ("RDB$FIELD_NAME" = 'TEST')""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/domain/create/test_42.py b/tests/functional/domain/create/test_42.py index 3e254b63..6fd71ba8 100644 --- a/tests/functional/domain/create/test_42.py +++ b/tests/functional/domain/create/test_42.py @@ -29,12 +29,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 Dynamic SQL Error -SQL error code = -104 -Token unknown - line 1, column 15 --INT -""" +-INT""" @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/domain/create/test_54.py b/tests/functional/domain/create/test_54.py index d3511181..05dfaa49 100644 --- a/tests/functional/domain/create/test_54.py +++ b/tests/functional/domain/create/test_54.py @@ -44,12 +44,11 @@ end ============================================================================= Parameters: I INPUT (TYPE OF D) INTEGER -O OUTPUT (TYPE OF D) INTEGER -""" +O OUTPUT (TYPE OF D) INTEGER""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/domain/drop/test_01.py b/tests/functional/domain/drop/test_01.py index e27a4810..0ec97f0a 100644 --- a/tests/functional/domain/drop/test_01.py +++ b/tests/functional/domain/drop/test_01.py @@ -35,5 +35,5 @@ expected_stderr_1 = """There is no domain TEST in this database""" def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/domain/drop/test_02.py b/tests/functional/domain/drop/test_02.py index 49974c3c..02027dfa 100644 --- a/tests/functional/domain/drop/test_02.py +++ b/tests/functional/domain/drop/test_02.py @@ -34,12 +34,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 unsuccessful metadata update -DROP DOMAIN TEST failed -Domain TEST is used in table TB (local name ID) and cannot be dropped - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/domain/drop/test_03.py b/tests/functional/domain/drop/test_03.py index c2b0adf6..84b195e6 100644 --- a/tests/functional/domain/drop/test_03.py +++ b/tests/functional/domain/drop/test_03.py @@ -32,12 +32,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 unsuccessful metadata update -DROP DOMAIN TEST failed -Domain not found - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/exception/alter/test_01.py b/tests/functional/exception/alter/test_01.py index bcab3997..603c2106 100644 --- a/tests/functional/exception/alter/test_01.py +++ b/tests/functional/exception/alter/test_01.py @@ -40,7 +40,7 @@ test_script_1 = """ ,e.rdb$exception_number exc_number ,e.rdb$message exc_msg from rdb$exceptions e; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -48,11 +48,11 @@ expected_stdout_1 = """ EXC_NAME TEST EXC_NUMBER 1 EXC_MSG new message - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/exception/create/test_01.py b/tests/functional/exception/create/test_01.py index 272d481f..52e5a3b3 100644 --- a/tests/functional/exception/create/test_01.py +++ b/tests/functional/exception/create/test_01.py @@ -36,7 +36,7 @@ test_script_1 = """ ,e.rdb$exception_number exc_number ,e.rdb$message exc_msg from rdb$exceptions e; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -44,11 +44,11 @@ expected_stdout_1 = """ EXC_NAME TEST EXC_NUMBER 1 EXC_MSG message to show - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/exception/create/test_02.py b/tests/functional/exception/create/test_02.py index 747fa955..c1059ae7 100644 --- a/tests/functional/exception/create/test_02.py +++ b/tests/functional/exception/create/test_02.py @@ -34,12 +34,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 unsuccessful metadata update -CREATE EXCEPTION TEST failed -Exception TEST already exists - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/exception/create/test_03.py b/tests/functional/exception/create/test_03.py index 00f68cd6..0dabf098 100644 --- a/tests/functional/exception/create/test_03.py +++ b/tests/functional/exception/create/test_03.py @@ -69,7 +69,7 @@ test_script_1 = """ end ^ set term ;^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -79,7 +79,7 @@ expected_stdout_1 = """ RDB$EXCEPTION_NAME BOO_UTF8 RDB$MESSAGE 3ηΣημείωσηΣημείωσηΣημεσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωση - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 42000 unsuccessful metadata update @@ -102,13 +102,14 @@ expected_stderr_1 = """ -BOO_UTF8 -3ηΣημείωσηΣημείωσηΣημεσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείωσηΣημείω... -At block line: 3, col: 7 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/exception/drop/test_01.py b/tests/functional/exception/drop/test_01.py index 943b31c9..8c6da321 100644 --- a/tests/functional/exception/drop/test_01.py +++ b/tests/functional/exception/drop/test_01.py @@ -36,5 +36,5 @@ expected_stderr_1 = """There is no exception TEST in this database""" def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/exception/drop/test_02.py b/tests/functional/exception/drop/test_02.py index 6985eeac..72251837 100644 --- a/tests/functional/exception/drop/test_02.py +++ b/tests/functional/exception/drop/test_02.py @@ -38,7 +38,7 @@ test_script_1 = """ select e.rdb$exception_name, d.rdb$dependent_name from rdb$exceptions e join rdb$dependencies d on e.rdb$exception_name = d.rdb$depended_on_name where e.rdb$exception_name = upper('exc_test'); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -46,20 +46,21 @@ expected_stdout_1 = """ RDB$EXCEPTION_NAME EXC_TEST RDB$DEPENDENT_NAME SP_TEST Records affected: 1 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 42000 unsuccessful metadata update -cannot delete -EXCEPTION EXC_TEST -there are 1 dependencies - """ +""" @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/exception/drop/test_03.py b/tests/functional/exception/drop/test_03.py index fa363f0d..8c84b5eb 100644 --- a/tests/functional/exception/drop/test_03.py +++ b/tests/functional/exception/drop/test_03.py @@ -33,12 +33,11 @@ unsuccessful metadata update -DROP EXCEPTION TEST failed -Exception not found There is no exception TEST in this database - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/exception/test_handling_name_and_message.py b/tests/functional/exception/test_handling_name_and_message.py index 8ed641a6..d64be145 100644 --- a/tests/functional/exception/test_handling_name_and_message.py +++ b/tests/functional/exception/test_handling_name_and_message.py @@ -149,7 +149,7 @@ test_script_1 = """ set count on; select * from log_user_trouble; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -163,11 +163,11 @@ expected_stdout_1 = """ At procedure 'главная точка входа' line: x col: y At block line: x col: y Records affected: 1 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/fkey/primary/test_insert_pk_01.py b/tests/functional/fkey/primary/test_insert_pk_01.py index c22a53bf..d355c0f7 100644 --- a/tests/functional/fkey/primary/test_insert_pk_01.py +++ b/tests/functional/fkey/primary/test_insert_pk_01.py @@ -6,13 +6,14 @@ # Master transaction doesn't modify primary key. # Detail transaction inserts record in detail_table. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5 # qmid: functional.fkey.primary.ins_01 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.5 # resources: None @@ -48,32 +49,41 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("update master_table set int_f = 10 WHERE ID=1") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + with act_1.db.connect() as con: + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("update master_table set int_f = 10 WHERE ID=1") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_02.py b/tests/functional/fkey/primary/test_insert_pk_02.py index 99bf819c..6f867021 100644 --- a/tests/functional/fkey/primary/test_insert_pk_02.py +++ b/tests/functional/fkey/primary/test_insert_pk_02.py @@ -6,13 +6,14 @@ # Master transaction modifies primary key. # Detail transaction inserts record in detail_table. # Expected: error - primary key in master table has been changed -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5.3 # qmid: functional.fkey.primary.ins_02 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.5.3 # resources: None @@ -48,38 +49,42 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("uPDATE MASTER_TABLE SET ID = 2 WHERE ID=1") -# +# # #Create second connection - update detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key reference target does not exist -- Problematic key value is ("FKEY" = 1) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5.3') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + with act_1.db.connect() as con: + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET ID = 2 WHERE ID=1") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + with pytest.raises(DatabaseError, + match='.*violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE".*'): + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_03.py b/tests/functional/fkey/primary/test_insert_pk_03.py index 88753947..bde35d9c 100644 --- a/tests/functional/fkey/primary/test_insert_pk_03.py +++ b/tests/functional/fkey/primary/test_insert_pk_03.py @@ -10,13 +10,14 @@ # 4) rollback to savepoint # Detail transaction inserts record in detail_table. # Expected: error - primary key has been changed -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5.3 # qmid: functional.fkey.primary.ins_03 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.5.3 # resources: None @@ -52,42 +53,48 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# -# +# +# # db_conn.begin(tpb=TPB_master) # cm_1 = db_conn.cursor() # cm_1.execute('UPDATE MASTER_TABLE SET INT_F=2') # db_conn.savepoint('A') # cm_1.execute('UPDATE MASTER_TABLE SET ID=2 WHERE ID=1') # db_conn.rollback(savepoint='A') -# +# # #Create second connection - update detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) - -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key reference target does not exist -- Problematic key value is ("FKEY" = 1) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5.3') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('UPDATE MASTER_TABLE SET INT_F=2') + con.savepoint('A') + c.execute('UPDATE MASTER_TABLE SET ID=2 WHERE ID=1') + con.rollback(savepoint='A') + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + with pytest.raises(DatabaseError, + match='.*violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE".*'): + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_04.py b/tests/functional/fkey/primary/test_insert_pk_04.py index 683abba1..ba4f7c72 100644 --- a/tests/functional/fkey/primary/test_insert_pk_04.py +++ b/tests/functional/fkey/primary/test_insert_pk_04.py @@ -10,13 +10,14 @@ # 4) rollback to savepoint # Detail transaction inserts record in detail_table. # Expected: error because key field in master_table was changed -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5.3 # qmid: functional.fkey.primary.ins_04 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.5.3 # resources: None @@ -52,42 +53,49 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# -# +# +# # db_conn.begin(tpb=TPB_master) # cm_1 = db_conn.cursor() # cm_1.execute('UPDATE MASTER_TABLE SET ID=2 WHERE ID=1') # db_conn.savepoint('A') # cm_1.execute('UPDATE MASTER_TABLE SET INT_F=2 ') # db_conn.rollback(savepoint='A') -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key reference target does not exist -- Problematic key value is ("FKEY" = 1) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5.3') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('UPDATE MASTER_TABLE SET ID=2 WHERE ID=1') + con.savepoint('A') + c.execute('UPDATE MASTER_TABLE SET INT_F=2') + con.rollback(savepoint='A') + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + with pytest.raises(DatabaseError, + match='.*violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE".*'): + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_05.py b/tests/functional/fkey/primary/test_insert_pk_05.py index ff1cafd9..a8d84983 100644 --- a/tests/functional/fkey/primary/test_insert_pk_05.py +++ b/tests/functional/fkey/primary/test_insert_pk_05.py @@ -6,13 +6,14 @@ # Master transaction modifies primary key and committed # Detail transaction inserts record in detail_table. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.primary.ins_05 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.1 # resources: None @@ -48,33 +49,42 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("UPDATE MASTER_TABLE SET ID=2 WHERE ID=1") # db_conn.commit() -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET ID=2 WHERE ID=1") + con.commit() + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_06.py b/tests/functional/fkey/primary/test_insert_pk_06.py index 681db2f9..853cb15a 100644 --- a/tests/functional/fkey/primary/test_insert_pk_06.py +++ b/tests/functional/fkey/primary/test_insert_pk_06.py @@ -6,13 +6,14 @@ # Master transaction modifies primary key and committed. # Detail transaction inserts record in detail_table. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5 # qmid: functional.fkey.primary.ins_06 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.5 # resources: None @@ -48,7 +49,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("UPDATE MASTER_TABLE SET ID=2 WHERE ID=1") @@ -56,28 +57,41 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("UPDATE MASTER_TABLE SET INT_F=10") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET ID=2 WHERE ID=1") + con.commit() + con.begin(cust_tpb) + c.execute("UPDATE MASTER_TABLE SET INT_F=10") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_07.py b/tests/functional/fkey/primary/test_insert_pk_07.py index c66ba45a..e26eb970 100644 --- a/tests/functional/fkey/primary/test_insert_pk_07.py +++ b/tests/functional/fkey/primary/test_insert_pk_07.py @@ -8,13 +8,14 @@ # Detail transaction inserts record in detail_table. # Expected: no errors. # Related to: CORE-1606. Ability to insert child record if parent record is locked but foreign key target unchanged. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5 # qmid: functional.fkey.primary.ins_07 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.5 # resources: None @@ -56,28 +57,36 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # db_conn.begin(tpb=TPB_master) # cm_1 = db_conn.cursor() # cm_1.execute('UPDATE MASTER_TABLE SET INT_F=2') -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 1, 'one')") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('UPDATE MASTER_TABLE SET INT_F=2') + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 1, 'one')") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_08.py b/tests/functional/fkey/primary/test_insert_pk_08.py index 682bb4c8..dae5883a 100644 --- a/tests/functional/fkey/primary/test_insert_pk_08.py +++ b/tests/functional/fkey/primary/test_insert_pk_08.py @@ -7,13 +7,14 @@ # Master transaction modifies one key field. # Detail transaction inserts record in detail_table. # Expected: error - primary key in master_table has been changed. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5.3 # qmid: functional.fkey.primary.ins_08 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.5.3 # resources: None @@ -55,34 +56,38 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # db_conn.begin(tpb=TPB_master) # cm_1 = db_conn.cursor() # cm_1.execute('UPDATE MASTER_TABLE SET ID_1=2 WHERE ID_1=1') -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 1, 'one')") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key reference target does not exist -- Problematic key value is ("FKEY_1" = 1, "FKEY_2" = 'one') -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5.3') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('UPDATE MASTER_TABLE SET ID_1=2 WHERE ID_1=1') + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + with pytest.raises(DatabaseError, + match='.*violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE".*'): + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 1, 'one')") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_09.py b/tests/functional/fkey/primary/test_insert_pk_09.py index c71f50cf..e3712108 100644 --- a/tests/functional/fkey/primary/test_insert_pk_09.py +++ b/tests/functional/fkey/primary/test_insert_pk_09.py @@ -7,13 +7,14 @@ # Master transaction modifies all primary key fields. # Detail transaction inserts record in detail_table. # Expected: error - primary in master_table has been changed. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5.3 # qmid: functional.fkey.primary.ins_09 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.5.3 # resources: None @@ -56,34 +57,39 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # cm_1 = db_conn.cursor() # cm_1.execute("UPDATE MASTER_TABLE SET ID_1=2 WHERE ID_1=1") # cm_1.execute("UPDATE MASTER_TABLE SET ID_2='two' WHERE ID_2='one'") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 1, 'one')") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key reference target does not exist -- Problematic key value is ("FKEY_1" = 1, "FKEY_2" = 'one') -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5.3') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET ID_1=2 WHERE ID_1=1") + c.execute("UPDATE MASTER_TABLE SET ID_2='two' WHERE ID_2='one'") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + with pytest.raises(DatabaseError, + match='.*violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE".*'): + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 1, 'one')") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_10.py b/tests/functional/fkey/primary/test_insert_pk_10.py index 1f63a4fc..02849760 100644 --- a/tests/functional/fkey/primary/test_insert_pk_10.py +++ b/tests/functional/fkey/primary/test_insert_pk_10.py @@ -7,13 +7,14 @@ # Master transaction modifies one field of primary key and committed. # Detail transaction inserts record in detail_table. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.primary.ins_10 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.1 # resources: None @@ -56,28 +57,37 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # cm_1 = db_conn.cursor() # cm_1.execute('UPDATE MASTER_TABLE SET ID_1=2 WHERE ID_1=1') # db_conn.commit(); -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 2, 'one')") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('UPDATE MASTER_TABLE SET ID_1=2 WHERE ID_1=1') + con.commit() + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 2, 'one')") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_11.py b/tests/functional/fkey/primary/test_insert_pk_11.py index f3e8ff48..d298da9b 100644 --- a/tests/functional/fkey/primary/test_insert_pk_11.py +++ b/tests/functional/fkey/primary/test_insert_pk_11.py @@ -7,13 +7,14 @@ # Master transaction modifies all primary key fields and committed. # Detail transaction inserts record in detail_table. # Expected: no errors. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.primary.ins_11 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.1 # resources: None @@ -63,21 +64,31 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 2, 'two')") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET ID_1=2 WHERE ID_1=1") + c.execute("UPDATE MASTER_TABLE SET ID_2='two' WHERE ID_2='one'") + con.commit() + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 2, 'two')") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_12.py b/tests/functional/fkey/primary/test_insert_pk_12.py index 722c60b1..986e01ed 100644 --- a/tests/functional/fkey/primary/test_insert_pk_12.py +++ b/tests/functional/fkey/primary/test_insert_pk_12.py @@ -7,13 +7,14 @@ # Master transaction modifies all primary key fields and committed. # Detail transaction inserts record in detail_table. # Expected: no errors. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5 # qmid: functional.fkey.primary.ins_12 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.5 # resources: None @@ -60,28 +61,40 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # db_conn.begin(tpb=TPB_master) # cm_1 = db_conn.cursor() # cm_1.execute("UPDATE MASTER_TABLE SET INT_F=2") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 2, 'two')") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET ID_1=2 WHERE ID_1=1") + c.execute("UPDATE MASTER_TABLE SET ID_2='two' WHERE ID_2='one'") + con.commit() + con.begin(cust_tpb) + c.execute("UPDATE MASTER_TABLE SET INT_F=2") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY_1, FKEY_2) VALUES (1, 2, 'two')") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_13.py b/tests/functional/fkey/primary/test_insert_pk_13.py index a64ab4c8..bfad05f6 100644 --- a/tests/functional/fkey/primary/test_insert_pk_13.py +++ b/tests/functional/fkey/primary/test_insert_pk_13.py @@ -49,7 +49,7 @@ test_script_1 = """ end ^ set term ;^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -59,11 +59,11 @@ expected_stderr_1 = """ -Foreign key reference target does not exist -Problematic key value is ("MASTER_PK_ID" = 1) -At block line: 5, col: 9 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/fkey/primary/test_insert_pk_14.py b/tests/functional/fkey/primary/test_insert_pk_14.py index 0f54a6dd..8a8b5159 100644 --- a/tests/functional/fkey/primary/test_insert_pk_14.py +++ b/tests/functional/fkey/primary/test_insert_pk_14.py @@ -6,13 +6,14 @@ # Master transaction deletes record from master_table and commit. # Detail transaction inserts record in detail_table. # Expected: referential integrity error. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.primary.ins_14 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.1 # resources: None @@ -52,34 +53,39 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # cm_1 = db_conn.cursor() # cm_1.execute('DELETE FROM MASTER_TABLE WHERE ID=1') # db_conn.commit() -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key reference target does not exist -- Problematic key value is ("FKEY" = 1) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('DELETE FROM MASTER_TABLE WHERE ID=1') + con.commit() + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + with pytest.raises(DatabaseError, + match='.*violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE".*'): + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_15.py b/tests/functional/fkey/primary/test_insert_pk_15.py index 4568f8c6..0a4cdb7b 100644 --- a/tests/functional/fkey/primary/test_insert_pk_15.py +++ b/tests/functional/fkey/primary/test_insert_pk_15.py @@ -47,7 +47,7 @@ test_script_1 = """ end ^ set term ;^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -57,11 +57,11 @@ expected_stderr_1 = """ -Foreign key reference target does not exist -Problematic key value is ("MASTER_PK_ID" = 1) -At block line: 5, col: 9 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/fkey/primary/test_insert_pk_16.py b/tests/functional/fkey/primary/test_insert_pk_16.py index 4a22abb5..e0fcd2d6 100644 --- a/tests/functional/fkey/primary/test_insert_pk_16.py +++ b/tests/functional/fkey/primary/test_insert_pk_16.py @@ -6,13 +6,14 @@ # Master transaction inserts record into master_table and commit. # Detail transaction inserts record in detail_table. # Expected: no errors. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.primary.ins_16 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.1 # resources: None @@ -50,28 +51,37 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # cm_1 = db_conn.cursor() # cm_1.execute('INSERT INTO MASTER_TABLE (ID, INT_F) VALUES (1, 10)') # db_conn.commit() -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('INSERT INTO MASTER_TABLE (ID, INT_F) VALUES (1, 10)') + con.commit() + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_17.py b/tests/functional/fkey/primary/test_insert_pk_17.py index 1aa80bcd..89257ae9 100644 --- a/tests/functional/fkey/primary/test_insert_pk_17.py +++ b/tests/functional/fkey/primary/test_insert_pk_17.py @@ -7,13 +7,14 @@ # 2 Detail transaction inserts record. # 3 Master transaction modifies primary key. # Expected: referential integrity error -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5.3 # qmid: functional.fkey.primary.ins_17 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.5.3 # resources: None @@ -49,11 +50,11 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("update master_table set int_f = 10 WHERE ID=1") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), @@ -66,25 +67,29 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # except Exception, e: # print (e[1]) -# +# # try: # c = db_conn.cursor() # c.execute("update master_table set ID=10 WHERE ID=1") # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key references are present for the record -- Problematic key value is ("ID" = 1) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5.3') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("update master_table set int_f = 10 WHERE ID=1") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + with pytest.raises(DatabaseError, + match='.*Foreign key references are present for the record.*'): + c.execute("update master_table set ID=10 WHERE ID=1") + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_18.py b/tests/functional/fkey/primary/test_insert_pk_18.py index 6abf3e83..2a06173b 100644 --- a/tests/functional/fkey/primary/test_insert_pk_18.py +++ b/tests/functional/fkey/primary/test_insert_pk_18.py @@ -8,13 +8,14 @@ # 3 Detail transaction commited # 4 Master transaction modifies primary key. # Expected: referential integrity error -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5.3 # qmid: functional.fkey.primary.ins_18 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.5.3 # resources: None @@ -50,11 +51,11 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("update master_table set int_f = 10 WHERE ID=1") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), @@ -68,25 +69,30 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # con_detail.commit() # except Exception, e: # print (e[1]) -# +# # try: # c = db_conn.cursor() # c.execute("update master_table set ID=10 WHERE ID=1") # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key references are present for the record -- Problematic key value is ("ID" = 1) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5.3') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("update master_table set int_f = 10 WHERE ID=1") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + with pytest.raises(DatabaseError, + match='.*Foreign key references are present for the record.*'): + c.execute("update master_table set ID=10 WHERE ID=1") + # Passed. diff --git a/tests/functional/fkey/primary/test_insert_pk_19.py b/tests/functional/fkey/primary/test_insert_pk_19.py index 960f0827..14e0c6c9 100644 --- a/tests/functional/fkey/primary/test_insert_pk_19.py +++ b/tests/functional/fkey/primary/test_insert_pk_19.py @@ -10,13 +10,14 @@ # 4) rollback to savepoint # Detail transaction insert in detail_table record. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5 # qmid: functional.fkey.primary.ins_19 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.5 # resources: None @@ -52,35 +53,46 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # cm_1 = db_conn.cursor() # cm_1.execute('UPDATE MASTER_TABLE SET INT_F=2') # db_conn.savepoint('A') # cm_1.execute('DELETE FROM MASTER_TABLE WHERE ID=1') # db_conn.rollback(savepoint='A') -# +# # #Create second connection - update detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('UPDATE MASTER_TABLE SET INT_F=2') + con.savepoint('A') + c.execute('DELETE FROM MASTER_TABLE WHERE ID=1') + con.rollback(savepoint='A') + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_select_pk_01.py b/tests/functional/fkey/primary/test_select_pk_01.py index 784af8b3..2a3724f5 100644 --- a/tests/functional/fkey/primary/test_select_pk_01.py +++ b/tests/functional/fkey/primary/test_select_pk_01.py @@ -6,13 +6,14 @@ # Master transaction is perform select with lock and fetch record. # Detail transaction inserts record in detail_table. # Expected: no errors. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5 # qmid: functional.fkey.primary.select_01 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.5 # resources: None @@ -48,7 +49,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("SELECT INT_F FROM MASTER_TABLE WHERE ID=1 WITH LOCK") @@ -59,21 +60,30 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("SELECT INT_F FROM MASTER_TABLE WHERE ID=1 WITH LOCK").fetchall() + con.commit() + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_select_pk_02.py b/tests/functional/fkey/primary/test_select_pk_02.py index ece764fc..2abd865f 100644 --- a/tests/functional/fkey/primary/test_select_pk_02.py +++ b/tests/functional/fkey/primary/test_select_pk_02.py @@ -6,13 +6,14 @@ # Master transaction is perform select with lock but not perform fetch. # Detail transaction inserts record in detail_table and commit; # Master transaction fetched record and trying update it; -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.primary.select_02 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.1 # resources: None @@ -48,18 +49,18 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("SELECT INT_F FROM MASTER_TABLE WHERE ID=1 WITH LOCK") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() @@ -67,26 +68,33 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # con_detail.commit() # except Exception, e: # print (e[0]) -# +# # try: # c.fetchall() # c.execute("UPDATE MASTER_TABLE SET ID=2") # db_conn.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key references are present for the record -- Problematic key value is ("ID" = 1) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("SELECT INT_F FROM MASTER_TABLE WHERE ID=1 WITH LOCK") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + with pytest.raises(DatabaseError, + match='.*Foreign key references are present for the record.*'): + c.fetchall() + c.execute("UPDATE MASTER_TABLE SET ID=2") + con.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_upd_pk_01.py b/tests/functional/fkey/primary/test_upd_pk_01.py index f16a1662..667b5045 100644 --- a/tests/functional/fkey/primary/test_upd_pk_01.py +++ b/tests/functional/fkey/primary/test_upd_pk_01.py @@ -6,13 +6,14 @@ # Master table has one key field. Master transaction doesn't modify key field. # Detail transaction updates record in detail_table record. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.primary.upd_01 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.1 # resources: None @@ -49,32 +50,40 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("update master_table set int_f = 10") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("UPDATE DETAIL_TABLE SET ID=2 WHERE ID=1") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("update master_table set int_f = 10") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("UPDATE DETAIL_TABLE SET ID=2 WHERE ID=1") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/primary/test_upd_pk_02.py b/tests/functional/fkey/primary/test_upd_pk_02.py index 5a24ebef..1a95292e 100644 --- a/tests/functional/fkey/primary/test_upd_pk_02.py +++ b/tests/functional/fkey/primary/test_upd_pk_02.py @@ -6,13 +6,14 @@ # Master transaction modifies primary key and commited # Detail transaction updates record in detail_table. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.primary.upd_02 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.1 # resources: None @@ -48,7 +49,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("UPDATE MASTER_TABLE SET ID=2 WHERE ID=1") @@ -56,28 +57,39 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("UPDATE MASTER_TABLE SET INT_F=10") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("UPDATE DETAIL_TABLE SET FKEY = 2") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET ID=2 WHERE ID=1") + con.commit() + con.begin(cust_tpb) + c.execute("UPDATE MASTER_TABLE SET INT_F=10") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("UPDATE DETAIL_TABLE SET FKEY = 2") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_insert_01.py b/tests/functional/fkey/unique/test_insert_01.py index 58fd988e..84f824d2 100644 --- a/tests/functional/fkey/unique/test_insert_01.py +++ b/tests/functional/fkey/unique/test_insert_01.py @@ -6,13 +6,14 @@ # Master table has one primary key field and one unique field. Master transaction doesn't modify primary key or unique field. # Detail transaction inserts record in detail_table. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5 # qmid: functional.fkey.unique.ins_01 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.5 # resources: None @@ -49,32 +50,40 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("update master_table set int_f = 10 WHERE ID=1") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("update master_table set int_f = 10 WHERE ID=1") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_insert_02.py b/tests/functional/fkey/unique/test_insert_02.py index 69628c17..38a020d9 100644 --- a/tests/functional/fkey/unique/test_insert_02.py +++ b/tests/functional/fkey/unique/test_insert_02.py @@ -6,13 +6,14 @@ # Master table has one primary key field and one unique field. Master transaction modifies unique field # Detail transaction inserts record in detail_table. # Expected: error - unique field in master table has been changed -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5.3 # qmid: functional.fkey.unique.ins_02 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.5.3 # resources: None @@ -49,38 +50,42 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() -# c.execute("uPDATE MASTER_TABLE SET UF=2 WHERE ID=1") -# +# c.execute("UPDATE MASTER_TABLE SET UF=2 WHERE ID=1") +# # #Create second connection - update detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key reference target does not exist -- Problematic key value is ("FKEY" = 2) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5.3') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET UF=2 WHERE ID=1") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + with pytest.raises(DatabaseError, + match='.*Foreign key reference target does not exist.*'): + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_insert_03.py b/tests/functional/fkey/unique/test_insert_03.py index 13cd203e..1f4d3cec 100644 --- a/tests/functional/fkey/unique/test_insert_03.py +++ b/tests/functional/fkey/unique/test_insert_03.py @@ -11,13 +11,14 @@ # 4) rollback to savepoint # Detail transaction inserts record in detail_table. # Expected: Error - unique field was changed -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.unique.ins_03 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.1 # resources: None @@ -54,42 +55,49 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# -# +# +# # db_conn.begin(tpb=TPB_master) # cm_1 = db_conn.cursor() # cm_1.execute('UPDATE MASTER_TABLE SET INT_F=2') # db_conn.savepoint('A') # cm_1.execute('UPDATE MASTER_TABLE SET UF=2 WHERE ID=1') # db_conn.rollback(savepoint='A') -# +# # #Create second connection - update detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key reference target does not exist -- Problematic key value is ("FKEY" = 2) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('UPDATE MASTER_TABLE SET INT_F=2') + con.savepoint('A') + c.execute('UPDATE MASTER_TABLE SET UF=2 WHERE ID=1') + con.rollback(savepoint='A') + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + with pytest.raises(DatabaseError, + match='.*Foreign key reference target does not exist.*'): + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_insert_04.py b/tests/functional/fkey/unique/test_insert_04.py index 01a8628e..b8cbc55b 100644 --- a/tests/functional/fkey/unique/test_insert_04.py +++ b/tests/functional/fkey/unique/test_insert_04.py @@ -11,13 +11,14 @@ # 4) rollback to savepoint # Detail transaction inserts record in detail_table record # Expected: error - unique field in master_table has been changed -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5.3 # qmid: functional.fkey.unique.ins_04 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.5.3 # resources: None @@ -54,42 +55,49 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# -# +# +# # db_conn.begin(tpb=TPB_master) # cm_1 = db_conn.cursor() # cm_1.execute('UPDATE MASTER_TABLE SET UF=2 WHERE ID=1') # db_conn.savepoint('A') # cm_1.execute('UPDATE MASTER_TABLE SET INT_F=2 ') # db_conn.rollback(savepoint='A') -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key reference target does not exist -- Problematic key value is ("FKEY" = 2) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5.3') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('UPDATE MASTER_TABLE SET UF=2 WHERE ID=1') + con.savepoint('A') + c.execute('UPDATE MASTER_TABLE SET INT_F=2 ') + con.rollback(savepoint='A') + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + with pytest.raises(DatabaseError, + match='.*Foreign key reference target does not exist.*'): + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_insert_05.py b/tests/functional/fkey/unique/test_insert_05.py index 3bb7662a..1bfc36f1 100644 --- a/tests/functional/fkey/unique/test_insert_05.py +++ b/tests/functional/fkey/unique/test_insert_05.py @@ -6,13 +6,14 @@ # Master table has one primary key field and one unique field. Master transaction modifies unique field and commit. # Detail transaction inserts record in detail_table. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.unique.ins_05 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.1 # resources: None @@ -49,33 +50,42 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("UPDATE MASTER_TABLE SET UF=2 WHERE ID=1") # db_conn.commit() -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET UF=2 WHERE ID=1") + con.commit() + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,2)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_insert_06.py b/tests/functional/fkey/unique/test_insert_06.py index 51248b8a..fc94d348 100644 --- a/tests/functional/fkey/unique/test_insert_06.py +++ b/tests/functional/fkey/unique/test_insert_06.py @@ -6,13 +6,14 @@ # Master table has one primary key field and one unique field. Master transaction doesn't modifiy unique field and commit # Detail transaction inserts record in detail_table. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.unique.ins_06 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.1 # resources: None @@ -49,7 +50,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("UPDATE MASTER_TABLE SET UF=null WHERE ID=1") @@ -57,28 +58,39 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("UPDATE MASTER_TABLE SET INT_F=10") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,null)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET UF=null WHERE ID=1") + con.commit() + con.begin(cust_tpb) + c.execute("UPDATE MASTER_TABLE SET INT_F=10") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,null)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_insert_07.py b/tests/functional/fkey/unique/test_insert_07.py index 5be2ec11..ad3a06e9 100644 --- a/tests/functional/fkey/unique/test_insert_07.py +++ b/tests/functional/fkey/unique/test_insert_07.py @@ -52,7 +52,7 @@ test_script_1 = """ end ^ set term ;^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -62,11 +62,11 @@ expected_stderr_1 = """ -Foreign key reference target does not exist -Problematic key value is ("MASTER_UNIQ_REF" = 1) -At block line: 5, col: 9 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/fkey/unique/test_insert_08.py b/tests/functional/fkey/unique/test_insert_08.py index 508afe04..b7d80fad 100644 --- a/tests/functional/fkey/unique/test_insert_08.py +++ b/tests/functional/fkey/unique/test_insert_08.py @@ -7,13 +7,14 @@ # Master transaction deletes record from master_table and commit. # Detail transaction inserts record in detail_table. # Expected: referential integrity error. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.unique.ins_08 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.1 # resources: None @@ -54,34 +55,39 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # cm_1 = db_conn.cursor() # cm_1.execute('DELETE FROM MASTER_TABLE WHERE ID=1') # db_conn.commit() -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key reference target does not exist -- Problematic key value is ("FKEY" = 1) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('DELETE FROM MASTER_TABLE WHERE ID=1') + con.commit() + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + with pytest.raises(DatabaseError, + match='.*Foreign key reference target does not exist.*'): + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_insert_09.py b/tests/functional/fkey/unique/test_insert_09.py index 3096ac50..c5b097fd 100644 --- a/tests/functional/fkey/unique/test_insert_09.py +++ b/tests/functional/fkey/unique/test_insert_09.py @@ -49,7 +49,7 @@ test_script_1 = """ end ^ set term ;^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -59,11 +59,11 @@ expected_stderr_1 = """ -Foreign key reference target does not exist -Problematic key value is ("MASTER_UNIQ_REF" = 1) -At block line: 5, col: 9 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/fkey/unique/test_insert_11.py b/tests/functional/fkey/unique/test_insert_11.py index 898010cf..63e08d89 100644 --- a/tests/functional/fkey/unique/test_insert_11.py +++ b/tests/functional/fkey/unique/test_insert_11.py @@ -5,13 +5,14 @@ # decription: Check foreign key work. # Update unique field with that not assigned foreign key # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5 # qmid: functional.fkey.unique.ins_11 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.5 # resources: None @@ -48,32 +49,40 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("update master_table set UF=10 WHERE ID=1") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("update master_table set UF=10 WHERE ID=1") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_insert_12.py b/tests/functional/fkey/unique/test_insert_12.py index 18dc67d7..2fa3886f 100644 --- a/tests/functional/fkey/unique/test_insert_12.py +++ b/tests/functional/fkey/unique/test_insert_12.py @@ -9,13 +9,14 @@ # 3 Master transaction modifies unique field. # Detail transaction inserts record in detail_table. # Expected: referential integrity error -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5.3 # qmid: functional.fkey.unique.ins_12 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.5.3 # resources: None @@ -52,43 +53,48 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("update master_table set int_f = 10 WHERE ID=1") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # except Exception, e: # print (e[1]) -# +# # try: # c = db_conn.cursor() # c.execute("update master_table set UF=10 WHERE ID=1") # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key references are present for the record -- Problematic key value is ("UF" = 1) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5.3') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("update master_table set int_f = 10 WHERE ID=1") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + with pytest.raises(DatabaseError, + match='.*Foreign key references are present for the record.*'): + c.execute("update master_table set UF=10 WHERE ID=1") + # Passed. diff --git a/tests/functional/fkey/unique/test_insert_13.py b/tests/functional/fkey/unique/test_insert_13.py index 0bcb765a..e1255d4b 100644 --- a/tests/functional/fkey/unique/test_insert_13.py +++ b/tests/functional/fkey/unique/test_insert_13.py @@ -10,13 +10,14 @@ # 4 Master transaction modifies unique field. # Detail transaction inserts record in detail_table record. # Expected: referential integrity error -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5.3 # qmid: functional.fkey.unique.ins_13 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.5.3 # resources: None @@ -53,18 +54,18 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("update master_table set int_f = 10 WHERE ID=1") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() @@ -72,25 +73,36 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # con_detail.commit() # except Exception, e: # print (e[1]) -# +# # try: # c = db_conn.cursor() # c.execute("update master_table set UF=10 WHERE ID=1") # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) + +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """Error while executing SQL statement: - SQLCODE: -530 - violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" - Foreign key references are present for the record -- Problematic key value is ("UF" = 1) -""" +- Problematic key value is ("UF" = 1)""" @pytest.mark.version('>=2.5.3') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("update master_table set int_f = 10 WHERE ID=1") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + with pytest.raises(DatabaseError, + match='.*Foreign key references are present for the record.*'): + c.execute("update master_table set UF=10 WHERE ID=1") + # Passed. diff --git a/tests/functional/fkey/unique/test_insert_14.py b/tests/functional/fkey/unique/test_insert_14.py index d549e4a2..c1a8fd2b 100644 --- a/tests/functional/fkey/unique/test_insert_14.py +++ b/tests/functional/fkey/unique/test_insert_14.py @@ -7,13 +7,14 @@ # Master transaction inserts record into master_table and commit. # Detail transaction inserts record in detail_table. # Expected: no errors. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.unique.ins_10 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.1 # resources: None @@ -52,28 +53,37 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # cm_1 = db_conn.cursor() # cm_1.execute('INSERT INTO MASTER_TABLE (ID, UF, INT_F) VALUES (1, 1, 10)') # db_conn.commit() -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() # cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute('INSERT INTO MASTER_TABLE (ID, UF, INT_F) VALUES (1, 1, 10)') + con.commit() + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_select_uf_01.py b/tests/functional/fkey/unique/test_select_uf_01.py index c5a54c62..ee545888 100644 --- a/tests/functional/fkey/unique/test_select_uf_01.py +++ b/tests/functional/fkey/unique/test_select_uf_01.py @@ -6,13 +6,14 @@ # Master transaction is perform select with lock and fetch record. # Detail transaction inserts record in detail_table. # Expected: no errors. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.5 # qmid: functional.fkey.unique.select_01 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.5 # resources: None @@ -49,7 +50,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("SELECT INT_F FROM MASTER_TABLE WHERE ID=1 WITH LOCK") @@ -60,21 +61,29 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("SELECT INT_F FROM MASTER_TABLE WHERE ID=1 WITH LOCK").fetchall() + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_select_uf_02.py b/tests/functional/fkey/unique/test_select_uf_02.py index be849c3b..a5bc1ed3 100644 --- a/tests/functional/fkey/unique/test_select_uf_02.py +++ b/tests/functional/fkey/unique/test_select_uf_02.py @@ -6,13 +6,14 @@ # Master transaction is perform select with lock but not perform fetch. # Detail transaction inserts record in detail_table and commit; # Master transaction fetched record and trying update it; -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.unique.select_02 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import DatabaseError, tpb, Isolation # version: 2.1 # resources: None @@ -49,18 +50,18 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("SELECT UF, INT_F FROM MASTER_TABLE WHERE ID=1 WITH LOCK") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # cd = con_detail.cursor() @@ -73,20 +74,26 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # c.execute("UPDATE MASTER_TABLE SET UF=2") # db_conn.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """Error while executing SQL statement: -- SQLCODE: -530 -- violation of FOREIGN KEY constraint "FK_DETAIL_TABLE" on table "DETAIL_TABLE" -- Foreign key references are present for the record -- Problematic key value is ("UF" = 1) -""" +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("SELECT UF, INT_F FROM MASTER_TABLE WHERE ID=1 WITH LOCK") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("INSERT INTO DETAIL_TABLE (ID, FKEY) VALUES (1,1)") + con_detail.commit() + c.fetchall() + with pytest.raises(DatabaseError, + match='.*Foreign key references are present for the record.*'): + c.execute("UPDATE MASTER_TABLE SET UF=2") + # Passed. diff --git a/tests/functional/fkey/unique/test_upd_01.py b/tests/functional/fkey/unique/test_upd_01.py index bbdc8382..03f1223c 100644 --- a/tests/functional/fkey/unique/test_upd_01.py +++ b/tests/functional/fkey/unique/test_upd_01.py @@ -6,13 +6,14 @@ # Master table has unique field. Master transaction doesn't modified it. # Detail transaction updates record in detail_table record. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.unique.upd_01 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.1 # resources: None @@ -50,32 +51,40 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("UPDATE MASTER_TABLE SET INT_F=10") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("UPDATE DETAIL_TABLE SET ID=2 WHERE ID=1") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET INT_F=10") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("UPDATE DETAIL_TABLE SET ID=2 WHERE ID=1") + con_detail.commit() + # Passed. diff --git a/tests/functional/fkey/unique/test_upd_02.py b/tests/functional/fkey/unique/test_upd_02.py index 0097367e..c8aa0d8c 100644 --- a/tests/functional/fkey/unique/test_upd_02.py +++ b/tests/functional/fkey/unique/test_upd_02.py @@ -6,13 +6,14 @@ # Master table has unique field. Master transaction modifies it and commit. # Detail transaction updates record in detail_table. # Expected: no errors -# tracker_id: +# tracker_id: # min_versions: [] # versions: 2.1 # qmid: functional.fkey.unique.upd_02 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action +from firebird.driver import tpb, Isolation # version: 2.1 # resources: None @@ -49,7 +50,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # + chr(kdb.isc_tpb_read_committed) + chr(kdb.isc_tpb_rec_version) # + chr(kdb.isc_tpb_nowait) # ) -# +# # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("UPDATE MASTER_TABLE SET UF=2 WHERE ID=1") @@ -57,28 +58,39 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # db_conn.begin(tpb=TPB_master) # c = db_conn.cursor() # c.execute("UPDATE MASTER_TABLE SET INT_F=10") -# +# # #Create second connection for change detail table # con_detail = kdb.connect( # dsn=dsn.encode(), # user=user_name.encode(), # password=user_password.encode() # ) -# +# # try: # con_detail.begin(tpb=TPB_detail) # c = con_detail.cursor() # c.execute("UPDATE DETAIL_TABLE SET FKEY = 2") # con_detail.commit() # except Exception, e: -# print (e[0]) +# print (e[0]) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): - pytest.fail("Test not IMPLEMENTED") - - +def test_1(act_1: Action): + with act_1.db.connect() as con: + cust_tpb = tpb(isolation=Isolation.READ_COMMITTED_RECORD_VERSION, lock_timeout=0) + con.begin(cust_tpb) + with con.cursor() as c: + c.execute("UPDATE MASTER_TABLE SET UF=2 WHERE ID=1") + con.commit() + con.begin(cust_tpb) + c.execute("UPDATE MASTER_TABLE SET INT_F=10") + #Create second connection for change detail table + with act_1.db.connect() as con_detail: + con_detail.begin(cust_tpb) + with con_detail.cursor() as cd: + cd.execute("UPDATE DETAIL_TABLE SET FKEY = 2") + con_detail.commit() + # Passed. diff --git a/tests/functional/generator/alter/test_01.py b/tests/functional/generator/alter/test_01.py index 2f314c4e..15c497e5 100644 --- a/tests/functional/generator/alter/test_01.py +++ b/tests/functional/generator/alter/test_01.py @@ -66,7 +66,7 @@ test_script_1 = """ select 'point-08' as msg, v.* from v_info v; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -82,13 +82,13 @@ expected_stdout_1 = """ point-06 -1 1 -1 point-07 1 -1 1 point-08 1 1 1 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -160,7 +160,7 @@ test_script_2 = """ ----------------------------------------------------------------------- recreate generator g start with 7654321; commit; alter sequence g restart with 1234567 increment by 23456789; commit; select 'point-08' as msg, p.* from sp_gen_info p; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -176,11 +176,11 @@ expected_stdout_2 = """ point-06 7654321 23456789 -24691356 -1234567 point-07 7654321 -23456789 24691356 1234567 point-08 7654321 23456789 -22222222 1234567 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/generator/create/test_01.py b/tests/functional/generator/create/test_01.py index 07c1fe6a..2840783c 100644 --- a/tests/functional/generator/create/test_01.py +++ b/tests/functional/generator/create/test_01.py @@ -31,7 +31,7 @@ test_script_1 = """ commit; set list on; select * from rdb$generators where rdb$generator_name=upper('test'); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -44,13 +44,13 @@ expected_stdout_1 = """ RDB$OWNER_NAME SYSDBA RDB$INITIAL_VALUE 0 RDB$GENERATOR_INCREMENT 1 - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -66,7 +66,7 @@ test_script_2 = """ commit; set list on; select * from rdb$generators where rdb$generator_name=upper('test'); - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -79,11 +79,11 @@ expected_stdout_2 = """ RDB$OWNER_NAME SYSDBA RDB$INITIAL_VALUE 1 RDB$GENERATOR_INCREMENT 1 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/generator/create/test_02.py b/tests/functional/generator/create/test_02.py index 2eadeb1a..5f26a024 100644 --- a/tests/functional/generator/create/test_02.py +++ b/tests/functional/generator/create/test_02.py @@ -29,7 +29,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ CREATE GENERATOR test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -37,11 +37,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 unsuccessful metadata update -CREATE SEQUENCE TEST failed -Sequence TEST already exists - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/generator/drop/test_01.py b/tests/functional/generator/drop/test_01.py index 41181ffe..ff18ba71 100644 --- a/tests/functional/generator/drop/test_01.py +++ b/tests/functional/generator/drop/test_01.py @@ -30,12 +30,11 @@ SHOW GENERATOR TEST;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stderr_1 = """There is no generator TEST in this database -""" +expected_stderr_1 = """There is no generator TEST in this database""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/generator/drop/test_02.py b/tests/functional/generator/drop/test_02.py index f305b0de..2760c115 100644 --- a/tests/functional/generator/drop/test_02.py +++ b/tests/functional/generator/drop/test_02.py @@ -42,12 +42,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 unsuccessful metadata update -cannot delete -GENERATOR TEST --there are 1 dependencies -""" +-there are 1 dependencies""" @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/generator/drop/test_03.py b/tests/functional/generator/drop/test_03.py index b60e7e7b..d5a31ce7 100644 --- a/tests/functional/generator/drop/test_03.py +++ b/tests/functional/generator/drop/test_03.py @@ -31,12 +31,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 unsuccessful metadata update -DROP SEQUENCE TEST failed -generator TEST is not defined - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/gtcs/test_computed_fields_01.py b/tests/functional/gtcs/test_computed_fields_01.py index 72da6307..2b130bdf 100644 --- a/tests/functional/gtcs/test_computed_fields_01.py +++ b/tests/functional/gtcs/test_computed_fields_01.py @@ -172,7 +172,7 @@ test_script_1 = """ update t50 set i = 99 where i = 2; select 'Passed 11 - Update' from t50 where j = (4*2-4+4)/2 having count(*) = 2; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -201,11 +201,11 @@ expected_stdout_1 = """ Passed 10 - Update Passed 11 - Insert Passed 11 - Update - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_02.py b/tests/functional/gtcs/test_computed_fields_02.py index a73d0053..f0591bd0 100644 --- a/tests/functional/gtcs/test_computed_fields_02.py +++ b/tests/functional/gtcs/test_computed_fields_02.py @@ -230,7 +230,7 @@ test_script_1 = """ update t10_dp set i = 0.2 where i = 2.0; select 'Passed 3(dp) - Update' from t10_dp where j = i+1 having count(*) = 2; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -269,11 +269,11 @@ expected_stdout_1 = """ Passed 2(dp) - Update Passed 3(dp) - Insert Passed 3(dp) - Update - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_03.py b/tests/functional/gtcs/test_computed_fields_03.py index 6ad4d38a..b17c57cf 100644 --- a/tests/functional/gtcs/test_computed_fields_03.py +++ b/tests/functional/gtcs/test_computed_fields_03.py @@ -133,7 +133,7 @@ test_script_1 = """ update t35 set s = 'by' where s = 'computed'; select 'Passed 8 - Update' from t35 where sc = 'test '||' test' having count(*) = 2; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -152,11 +152,11 @@ expected_stdout_1 = """ Passed 7 - Update Passed 8 - Insert Passed 8 - Update - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_04.py b/tests/functional/gtcs/test_computed_fields_04.py index 037b53c0..e5a18ff1 100644 --- a/tests/functional/gtcs/test_computed_fields_04.py +++ b/tests/functional/gtcs/test_computed_fields_04.py @@ -133,7 +133,7 @@ test_script_1 = """ update t35 set s = 'by' where s = 'computed'; select 'Passed 8 - Update' from t35 where sc = 'test '||' test' having count(*) = 2; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -152,11 +152,11 @@ expected_stdout_1 = """ Passed 7 - Update Passed 8 - Insert Passed 8 - Update - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_05.py b/tests/functional/gtcs/test_computed_fields_05.py index b20e1e4a..02760507 100644 --- a/tests/functional/gtcs/test_computed_fields_05.py +++ b/tests/functional/gtcs/test_computed_fields_05.py @@ -124,7 +124,7 @@ test_script_1 = """ update t25 set d_end = cast('today' as date) + 5 where d_start = 'today'; select 'Passed 6 - Update' from t25 where date_diff = d_end - d_start having count(*) = 3; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -141,11 +141,11 @@ expected_stdout_1 = """ Passed 5 - Update Passed 6 - Insert Passed 6 - Update - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_06.py b/tests/functional/gtcs/test_computed_fields_06.py index 604a4c6c..480bc45e 100644 --- a/tests/functional/gtcs/test_computed_fields_06.py +++ b/tests/functional/gtcs/test_computed_fields_06.py @@ -2,14 +2,14 @@ # # id: functional.gtcs.computed_fields_06 # title: computed-fields-06 -# decription: +# decription: # Original test see in: # https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/CF_ISQL_06.script # SQL script for creating test database ('gtcs_sp1.fbk') and fill it with some data: # https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/PROCS_QA_INIT_ISQL.script # Checked on: 4.0.0.1803 SS; 3.0.6.33265 SS; 2.5.9.27149 SC. -# -# tracker_id: +# +# tracker_id: # min_versions: ['2.5.0'] # versions: 2.5 # qmid: None @@ -72,7 +72,7 @@ test_script_1 = """ update t10 set a = 13 where a = 11; select 'Passed 3 - Update' from t10 where a_b_const = a/10*b having count(*) = 2; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -83,11 +83,11 @@ expected_stdout_1 = """ Passed 2 - Update Passed 3 - Insert Passed 3 - Update - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_07.py b/tests/functional/gtcs/test_computed_fields_07.py index bfd0cb8e..a1c2b61e 100644 --- a/tests/functional/gtcs/test_computed_fields_07.py +++ b/tests/functional/gtcs/test_computed_fields_07.py @@ -151,7 +151,7 @@ test_script_1 = """ update t35 set f_date = '03/01/94' where f_date = '01/01/94'; select 'Passed 7 - Update' from t35 where literal_date = '01/01/95' - f_date having count(*) = 2; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -184,11 +184,11 @@ expected_stdout_1 = """ Passed 6 - Update Passed 7 - Insert Passed 7 - Update - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_08.py b/tests/functional/gtcs/test_computed_fields_08.py index bb45e769..409cb434 100644 --- a/tests/functional/gtcs/test_computed_fields_08.py +++ b/tests/functional/gtcs/test_computed_fields_08.py @@ -56,7 +56,7 @@ test_script_1 = """ update t5 set a = 'xyz' where a = 'abcdef'; select 'Passed 2 - Update' from t5 where upper_const = a || upper('upper()') having count(*) = 4; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -65,11 +65,11 @@ expected_stdout_1 = """ Passed 1 - Update Passed 2 - Insert Passed 2 - Update - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_09.py b/tests/functional/gtcs/test_computed_fields_09.py index 36b3d54c..7fe5e5de 100644 --- a/tests/functional/gtcs/test_computed_fields_09.py +++ b/tests/functional/gtcs/test_computed_fields_09.py @@ -105,7 +105,7 @@ test_script_1 = """ update t25 set f_float = 12.12 where f_float = 10.12; select 'Passed 6 - Update' from t25 where float_as_char = cast(f_float as char(15)) having count(*) = 2; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -122,11 +122,11 @@ expected_stdout_1 = """ Passed 5 - Update Passed 6 - Insert Passed 6 - Update - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_10.py b/tests/functional/gtcs/test_computed_fields_10.py index 56b2845a..da90897a 100644 --- a/tests/functional/gtcs/test_computed_fields_10.py +++ b/tests/functional/gtcs/test_computed_fields_10.py @@ -57,7 +57,7 @@ test_script_1 = """ select * from t0 where genid_field = gen_id(gen1, 1); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -67,11 +67,11 @@ expected_stdout_1 = """ 10 1011 12 1014 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_11.py b/tests/functional/gtcs/test_computed_fields_11.py index 32bcee3c..ad4c199f 100644 --- a/tests/functional/gtcs/test_computed_fields_11.py +++ b/tests/functional/gtcs/test_computed_fields_11.py @@ -54,14 +54,14 @@ test_script_1 = """ from rdb$relations r where r.rdb$relation_name in ( upper('t0'), upper('t1'), upper('t2') ) ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ REL_NAME T2 Records affected: 1 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 42S22 unsuccessful metadata update @@ -78,13 +78,14 @@ expected_stderr_1 = """ -SQL error code = -206 -Column unknown -F01 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_12.py b/tests/functional/gtcs/test_computed_fields_12.py index b4573e17..0de12c9a 100644 --- a/tests/functional/gtcs/test_computed_fields_12.py +++ b/tests/functional/gtcs/test_computed_fields_12.py @@ -8,10 +8,14 @@ # SQL script for creating test database ('gtcs_sp1.fbk') and fill it with some data: # https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/PROCS_QA_INIT_ISQL.script # Checked on: 4.0.0.1803 SS; 3.0.6.33265 SS; 2.5.9.27149 SC. +# +# 25.09.2021: moved code for 4.0+ into separate secion because of fixed gh-6845. Use SET_SQLDA_DISPLAY ON for check datatypes. +# (seel also commit for apropriate GTCS-tests: e617f3d70be5018de6e6ee8624da6358d52a9ce0, 20-aug-2021 14:11) +# # # tracker_id: # min_versions: ['2.5.0'] -# versions: 2.5 +# versions: 2.5, 4.0 # qmid: None import pytest @@ -35,9 +39,8 @@ test_script_1 = """ create table t3 (a integer, af computed by (a*3), afaf computed by (af*2)); insert into t3(a) values(10); - set count on; select * from t3; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -45,12 +48,51 @@ expected_stdout_1 = """ A 10 AF 30 AFAF 60 - Records affected: 1 - """ +""" -@pytest.mark.version('>=2.5') +@pytest.mark.version('>=2.5,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout + +# version: 4.0 +# resources: None + +substitutions_2 = [('^((?!(sqltype|FLD_)).)*$', ''), ('[ \t]+', ' '), ('.*alias.*', '')] + +init_script_2 = """""" + +db_2 = db_factory(sql_dialect=3, init=init_script_2) + +test_script_2 = """ + set list on; + recreate table test (fld_source integer, fld_comp_based_on_source computed by ( fld_source*3 ), fld_comp_based_on_comp computed by ( fld_comp_based_on_source * 2 ) ); + insert into test(fld_source) values(10); + + set sqlda_display on; + + -- expected output for 3rd column: + -- 03: sqltype: 32752 INT128 Nullable scale: 0 subtype: 0 len: 16" (confirm on build 4.0.1.2613; 5.0.0.220) + -- build 4.0.1.2536 (last before fix) issues here "03: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8" + + select * from test; +""" + +act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) + +expected_stdout_2 = """ + 01: sqltype: 496 LONG Nullable scale: 0 subtype: 0 len: 4 + 02: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8 + 03: sqltype: 32752 INT128 Nullable scale: 0 subtype: 0 len: 16 + FLD_SOURCE 10 + FLD_COMP_BASED_ON_SOURCE 30 + FLD_COMP_BASED_ON_COMP 60 +""" + +@pytest.mark.version('>=4.0') +def test_2(act_2: Action): + act_2.expected_stdout = expected_stdout_2 + act_2.execute() + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_13.py b/tests/functional/gtcs/test_computed_fields_13.py index a71b8cbb..c2abda98 100644 --- a/tests/functional/gtcs/test_computed_fields_13.py +++ b/tests/functional/gtcs/test_computed_fields_13.py @@ -7,6 +7,10 @@ # https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/CF_ISQL_13.script # SQL script for creating test database ('gtcs_sp1.fbk') and fill it with some data: # https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/PROCS_QA_INIT_ISQL.script +# +# Check that it is not allowed to drop column which is referenced by computed-by column. +# +# # Checked on: 4.0.0.1803 SS; 3.0.6.33265 SS; 2.5.9.27149 SC. # # tracker_id: @@ -56,14 +60,14 @@ test_script_1 = """ /*---------------------------------------------------------------------*/ alter table t1 drop af; select 'point-2' msg, p.* from t1 p; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ point-1 10 30 point-2 11 44 220 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE 42000 unsuccessful metadata update @@ -76,13 +80,14 @@ expected_stderr_1 = """ -cannot delete -COLUMN T1.AF -there are 1 dependencies - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_14.py b/tests/functional/gtcs/test_computed_fields_14.py index cce549ae..ff5c7089 100644 --- a/tests/functional/gtcs/test_computed_fields_14.py +++ b/tests/functional/gtcs/test_computed_fields_14.py @@ -57,14 +57,14 @@ test_script_1 = """ /*-----------------------------------------------------------------*/ create table t6 (af int, bf computed by (1+2)); insert into t6 values(10, 12); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ point-1 10 30 point-2 10 30 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE 42000 attempted update of read-only column @@ -81,13 +81,14 @@ expected_stderr_1 = """ Dynamic SQL Error -SQL error code -804 -Count of read-write columns does not equal count of values - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_computed_fields_15.py b/tests/functional/gtcs/test_computed_fields_15.py index 995ae05c..7414e1c2 100644 --- a/tests/functional/gtcs/test_computed_fields_15.py +++ b/tests/functional/gtcs/test_computed_fields_15.py @@ -32,7 +32,7 @@ test_script_1 = """ /* Create a table with computed field which is defined using non-existing UDF. */ /*-----------------------------------------------------------------------------*/ create table t0 (a integer, af computed by ( non_exist_udf(a) )); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -42,11 +42,11 @@ expected_stderr_1 = """ -SQL error code -804 -Function unknown -NON_EXIST_UDF - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/gtcs/test_computed_fields_16.py b/tests/functional/gtcs/test_computed_fields_16.py index fa3a0175..1d777bb3 100644 --- a/tests/functional/gtcs/test_computed_fields_16.py +++ b/tests/functional/gtcs/test_computed_fields_16.py @@ -49,7 +49,7 @@ test_script_1 = """ recreate table t6 (a integer, af computed by (a*3) primary key); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -95,11 +95,11 @@ expected_stderr_1 = """ -SQL error code = -104 -Token unknown - line 1, column 52 -primary - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/gtcs/test_computed_fields_17.py b/tests/functional/gtcs/test_computed_fields_17.py index 3d9613d2..99e6d926 100644 --- a/tests/functional/gtcs/test_computed_fields_17.py +++ b/tests/functional/gtcs/test_computed_fields_17.py @@ -118,7 +118,7 @@ test_script_1 = """ select 'point-2' msg, p.* from t0 p; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -130,11 +130,11 @@ expected_stdout_1 = """ MSG A GENID_FIELD1 GENID_FIELD2 GENID_FIELD3 point-2 4 1004 4205 6630 point-2 1 1007 6216 11840 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_conversion_error_from_string.py b/tests/functional/gtcs/test_conversion_error_from_string.py index 687c35c0..182a1d19 100644 --- a/tests/functional/gtcs/test_conversion_error_from_string.py +++ b/tests/functional/gtcs/test_conversion_error_from_string.py @@ -250,7 +250,7 @@ test_script_1 = """ select 'point-1' msg, m.* from items m; select 'point-2' msg, m.qoh, m.qoh, m.qoh, m.qoh, m.qoh, m.qoh, m.qoh, m.qoh, m.qoh, m.qoh from items m; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -428,11 +428,11 @@ expected_stdout_1 = """ Records affected: 6 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_crash_of_group_by_varchar_4000.py b/tests/functional/gtcs/test_crash_of_group_by_varchar_4000.py index 1c1f26ac..8029b7ae 100644 --- a/tests/functional/gtcs/test_crash_of_group_by_varchar_4000.py +++ b/tests/functional/gtcs/test_crash_of_group_by_varchar_4000.py @@ -84,18 +84,18 @@ test_script_1 = """ select f01 from snippets group by f01; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ F01 Records affected: 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_division_by_zero_corrupts_db.py b/tests/functional/gtcs/test_division_by_zero_corrupts_db.py index 07e18331..1e067b55 100644 --- a/tests/functional/gtcs/test_division_by_zero_corrupts_db.py +++ b/tests/functional/gtcs/test_division_by_zero_corrupts_db.py @@ -71,7 +71,7 @@ test_script_1 = """ execute procedure spx_aux_test (1); execute procedure spx_aux_test (1); execute procedure spx_aux_test (1); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -87,11 +87,11 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 22012 arithmetic exception, numeric overflow, or string truncation -Integer divide by zero. The code attempted to divide an integer value by an integer divisor of zero. - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/gtcs/test_dsql_domain_01.py b/tests/functional/gtcs/test_dsql_domain_01.py index 3f4874aa..a411c8ed 100644 --- a/tests/functional/gtcs/test_dsql_domain_01.py +++ b/tests/functional/gtcs/test_dsql_domain_01.py @@ -76,7 +76,7 @@ test_script_1 = """ set list on; set count on; select * from v_test order by dm_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -310,11 +310,11 @@ expected_stdout_1 = """ DM_FVALID DM_FDEFAULT Records affected: 19 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_dsql_domain_02.py b/tests/functional/gtcs/test_dsql_domain_02.py index 2a203675..7d058365 100644 --- a/tests/functional/gtcs/test_dsql_domain_02.py +++ b/tests/functional/gtcs/test_dsql_domain_02.py @@ -84,7 +84,7 @@ test_script_1 = """ set count on; select * from v_test order by dm_name; --('[ ]+', ' '), - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -365,11 +365,11 @@ expected_stdout_1 = """ DM_FNULL default user Records affected: 25 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_dsql_domain_03.py b/tests/functional/gtcs/test_dsql_domain_03.py index 2ef8412b..8ed4960c 100644 --- a/tests/functional/gtcs/test_dsql_domain_03.py +++ b/tests/functional/gtcs/test_dsql_domain_03.py @@ -84,7 +84,7 @@ test_script_1 = """ set list on; set count on; select * from v_test order by dm_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -402,11 +402,11 @@ expected_stdout_1 = """ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID Records affected: 26 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_dsql_domain_04.py b/tests/functional/gtcs/test_dsql_domain_04.py index 90ac86f0..8550f995 100644 --- a/tests/functional/gtcs/test_dsql_domain_04.py +++ b/tests/functional/gtcs/test_dsql_domain_04.py @@ -224,7 +224,7 @@ test_script_1 = """ set list on; set count on; select * from v_test order by dm_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -639,11 +639,11 @@ expected_stdout_1 = """ DM_FNULL check (value in(-9.999999999999999999999999999999999E+6144, 9.999999999999999999999999999999999E+6144) ) Records affected: 26 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_dsql_domain_06.py b/tests/functional/gtcs/test_dsql_domain_06.py index f07af2fe..0d3ed20b 100644 --- a/tests/functional/gtcs/test_dsql_domain_06.py +++ b/tests/functional/gtcs/test_dsql_domain_06.py @@ -2,27 +2,27 @@ # # id: functional.gtcs.dsql_domain_06 # title: GTCS/tests/DSQL_DOMAIN_06. Test the level 0 syntax for SQL "CREATE DOMAIN" statement using datatype and CHECK constraint clause. -# decription: +# decription: # Original test see in: -# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_06.script -# +# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_06.script +# # NB: avoid usage of ISQL command 'SHOW DOMAIN' because of unstable output. # We display info about domains using common VIEW based on RDB$FIELDS table. # Columns with rdb$validation_source and rdb$default_source contain BLOB data thus we have to skip from showing their blob ID - see substitution. -# +# # ::: NOTE ::: # Added domains with datatype that did appear only in FB 4.0: DECFLOAT and TIME[STAMP] WITH TIME ZONE. For this reason only FB 4.0+ can be tested. -# +# # For each base datatype we: # * create domain and set default value; # * alter domain in order to drop default; # * alter domain in order to set new default; # * alter domain with doing TWO changes in ONE statement: set new default + drop default; # * alter domain with doing TWO changes in ONE statement: drop default + set new default. -# +# # For some datatypes (float, double precision) we also verify ability to use boundary values for datatype itself. # For character datatypes we use non-asci characters (currency signs: euro, cent, pound, yena). -# +# # Currently following datatypes are NOT checked: # blob sub_type text not null; # blob sub_type binary not null; // byt test *does* check BLOB without sub_type specified @@ -30,10 +30,10 @@ # nchar(20) not null; # binary(20) not null; # varbinary(20) not null; -# -# Checked on 4.0.0.1926. -# -# tracker_id: +# +# Checked on 4.0.0.1926. +# +# tracker_id: # min_versions: ['4.0'] # versions: 4.0 # qmid: None @@ -156,7 +156,7 @@ test_script_1 = """ ------------------------------------------------------------------------------------------------ -- https://en.wikipedia.org/wiki/Single-precision_floating-point_format, power(2,-149): -- https://www.wolframalpha.com - + -- (largest normal number): (2-power(2,-23)) * power(2,127) create domain dom06_14 as float default 340282346638528859811704183484516925440; alter domain dom06_14 drop default; @@ -175,7 +175,7 @@ test_script_1 = """ alter domain dom06_15 set default 1.40129846432481707092372958328991613128026194187651577175706828388979108268586060148663818836212158203125e-45; alter domain dom06_15 set default 0.999999940395355224609375 drop default; alter domain dom06_15 drop default set default 1.00000011920928955078125; - + ------------------------------------------------------------------------------------------------ -- https://en.wikipedia.org/wiki/Double-precision_floating-point_format @@ -196,13 +196,13 @@ test_script_1 = """ -- 2.225073858507200889024586876085859887650423112240959... × 10^-308 -- alter domain dom06_16 set default 2.225073858507200889024586876085859887650423112240959e-308; -- 0.00000000 alter domain dom06_16 set default 2e-308; - -- 1 + power(2,-52) = 1.0000000000000002, the smallest number > 1 + -- 1 + power(2,-52) = 1.0000000000000002, the smallest number > 1 -- 1.0000000000000002220446049250313080847263336181640625 alter domain dom06_16 set default 1.0000000000000002220446049250313080847263336181640625 drop default; alter domain dom06_16 drop default set default 1.0000000000000006; ----------------------------------------------------------------------------------------------- create domain dom06_17 as blob default -' +' 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 @@ -370,7 +370,7 @@ test_script_1 = """ ; alter domain dom06_17 drop default; - alter domain dom06_17 set default + alter domain dom06_17 set default ' @@ -378,7 +378,7 @@ test_script_1 = """ alter domain dom06_17 set default null drop default; alter domain dom06_17 drop default set default -' +' 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 @@ -543,7 +543,7 @@ test_script_1 = """ 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 012345678901234567 ' - ; + ; ---------------------------------------------------------------------------------------------------- create domain dom06_18 as boolean default false; alter domain dom06_18 drop default; @@ -557,15 +557,15 @@ test_script_1 = """ alter domain dom06_19 set default null drop default; alter domain dom06_19 drop default set default -1.0E-6143; ---------------------------------------------------------------------------------------------------- - commit; + commit; set count on; select * from v_test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ -DM_NAME DOM06_01 +DM_NAME DOM06_01 DM_TYPE 7 DM_SUBTYPE 0 DM_FLEN 2 @@ -579,7 +579,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:1e8 default 3333 -DM_NAME DOM06_02 +DM_NAME DOM06_02 DM_TYPE 8 DM_SUBTYPE 0 DM_FLEN 4 @@ -593,7 +593,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:1ec default 33333 -DM_NAME DOM06_03 +DM_NAME DOM06_03 DM_TYPE 16 DM_SUBTYPE 0 DM_FLEN 8 @@ -607,7 +607,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:1f0 default 333333 -DM_NAME DOM06_04 +DM_NAME DOM06_04 DM_TYPE 12 DM_SUBTYPE DM_FLEN 4 @@ -621,7 +621,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:1f4 default 'YESTERDAY' -DM_NAME DOM06_05 +DM_NAME DOM06_05 DM_TYPE 13 DM_SUBTYPE DM_FLEN 4 @@ -635,7 +635,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:1f8 default current_time -DM_NAME DOM06_06 +DM_NAME DOM06_06 DM_TYPE 28 DM_SUBTYPE DM_FLEN 8 @@ -649,7 +649,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:1fc default '01:02:03.456 Antarctica/South_Pole' -DM_NAME DOM06_07 +DM_NAME DOM06_07 DM_TYPE 35 DM_SUBTYPE DM_FLEN 8 @@ -663,7 +663,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:200 default current_timestamp -DM_NAME DOM06_08 +DM_NAME DOM06_08 DM_TYPE 29 DM_SUBTYPE DM_FLEN 12 @@ -677,7 +677,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:204 default '29.05.2017 01:02:03.456 Antarctica/South_Pole' -DM_NAME DOM06_09 +DM_NAME DOM06_09 DM_TYPE 14 DM_SUBTYPE 0 DM_FLEN 4 @@ -691,7 +691,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:208 default '¥' -DM_NAME DOM06_10 +DM_NAME DOM06_10 DM_TYPE 37 DM_SUBTYPE 0 DM_FLEN 4 @@ -705,7 +705,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:20c default '¥' -DM_NAME DOM06_11 +DM_NAME DOM06_11 DM_TYPE 14 DM_SUBTYPE 0 DM_FLEN 1 @@ -719,7 +719,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:210 default '¡' -DM_NAME DOM06_12 +DM_NAME DOM06_12 DM_TYPE 7 DM_SUBTYPE 1 DM_FLEN 2 @@ -733,7 +733,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:214 default 327.67 -DM_NAME DOM06_13 +DM_NAME DOM06_13 DM_TYPE 26 DM_SUBTYPE 2 DM_FLEN 16 @@ -747,7 +747,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:218 default 99999999999999999999999999999999 -DM_NAME DOM06_14 +DM_NAME DOM06_14 DM_TYPE 10 DM_SUBTYPE DM_FLEN 4 @@ -761,7 +761,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:21c default 1.00000011920928955078125 -DM_NAME DOM06_15 +DM_NAME DOM06_15 DM_TYPE 10 DM_SUBTYPE DM_FLEN 4 @@ -775,7 +775,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:220 default 1.00000011920928955078125 -DM_NAME DOM06_16 +DM_NAME DOM06_16 DM_TYPE 27 DM_SUBTYPE DM_FLEN 8 @@ -789,7 +789,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:224 default 1.0000000000000006 -DM_NAME DOM06_17 +DM_NAME DOM06_17 DM_TYPE 261 DM_SUBTYPE 0 DM_FLEN 8 @@ -802,7 +802,7 @@ DM_FNULL DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:228 default -' +' 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 @@ -968,7 +968,7 @@ default 012345678901234567 ' -DM_NAME DOM06_18 +DM_NAME DOM06_18 DM_TYPE 23 DM_SUBTYPE DM_FLEN 1 @@ -982,7 +982,7 @@ DM_FVALID_BLOB_ID DM_FDEFAULT_BLOB_ID 2:22c default false -DM_NAME DOM06_19 +DM_NAME DOM06_19 DM_TYPE 25 DM_SUBTYPE DM_FLEN 16 @@ -997,11 +997,11 @@ DM_FDEFAULT_BLOB_ID 2:230 default -1.0E-6143 Records affected: 19 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 - act_1.execute(charset='utf8') - assert act_1.clean_expected_stdout == act_1.clean_stdout + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_dsql_domain_07.py b/tests/functional/gtcs/test_dsql_domain_07.py index 3d15b437..9bf95b11 100644 --- a/tests/functional/gtcs/test_dsql_domain_07.py +++ b/tests/functional/gtcs/test_dsql_domain_07.py @@ -2,27 +2,27 @@ # # id: functional.gtcs.dsql_domain_07 # title: GTCS/tests/DSQL_DOMAIN_07. Test CREATE / ALTER domain statement with ADD/DROP CONSTRAINT clauses, together and separately. -# decription: +# decription: # Original test see in: -# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_07.script -# +# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_07.script +# # NB: avoid usage of ISQL command 'SHOW DOMAIN' because of unstable output. # We display info about domains using common VIEW based on RDB$FIELDS table. # Columns with rdb$validation_source and rdb$default_source contain BLOB data thus we have to skip from showing their blob ID - see substitution. -# +# # ::: NOTE ::: # Added domains with datatype that did appear only in FB 4.0: DECFLOAT and TIME[STAMP] WITH TIME ZONE. For this reason only FB 4.0+ can be tested. -# +# # For each base datatype we: # * create domain and set initial CHECK constraint; # * alter domain in order to add new constraint. This must FAIL with message "Only one constraint allowed for a domain" (SQLSTATE = 42000) -# * alter domain with requirement ADD CONSTRAINT and DROP it. +# * alter domain with requirement ADD CONSTRAINT and DROP it. # ########## # ### NB ### Clause 'DROP CONSTRAINT' will be executed FIRST in this case, regardless where it is specified. # ########## # For this reason such statement must PASS. # * alter domain and try to add again new CHECK constraint. This thould fail again with SQLSTATE=42000. -# +# # Currently following datatypes are NOT checked: # blob sub_type text not null; # blob sub_type binary not null; // byt test *does* check BLOB without sub_type specified @@ -30,10 +30,10 @@ # nchar not null; # binary not null; # varbinary not null; -# +# # Checked on 4.0.0.1931. -# -# tracker_id: +# +# tracker_id: # min_versions: ['4.0'] # versions: 4.0 # qmid: None @@ -153,8 +153,8 @@ test_script_1 = """ alter domain dom06_16 add constraint check( value >= 2e-308 ) drop constraint; alter domain dom06_16 add constraint check( value = 1.0000000000000002220446049250313080847263336181640625 ); ----------------------------------------------------------------------------------------------- - create domain dom06_17 as blob check (value = -' + create domain dom06_17 as blob check (value = +' 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 @@ -321,13 +321,13 @@ test_script_1 = """ ' ); - alter domain dom06_17 add constraint check( value = + alter domain dom06_17 add constraint check( value = ' '); -- several empty lines here - alter domain dom06_17 add constraint check( value = + alter domain dom06_17 add constraint check( value = ' @@ -347,16 +347,16 @@ test_script_1 = """ alter domain dom06_19 add constraint check( value is not null ) drop constraint; alter domain dom06_19 add constraint check( value >= -1.0E-6143 ); ---------------------------------------------------------------------------------------------------- - commit; + commit; set count on; select * from v_test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ - DM_NAME DOM06_01 + DM_NAME DOM06_01 DM_TYPE 7 DM_SUBTYPE 0 DM_FLEN 2 @@ -370,7 +370,7 @@ expected_stdout_1 = """ check( value = 3 ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_02 + DM_NAME DOM06_02 DM_TYPE 8 DM_SUBTYPE 0 DM_FLEN 4 @@ -384,7 +384,7 @@ expected_stdout_1 = """ check( value = 3 ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_03 + DM_NAME DOM06_03 DM_TYPE 16 DM_SUBTYPE 0 DM_FLEN 8 @@ -398,7 +398,7 @@ expected_stdout_1 = """ check( value = 3 ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_04 + DM_NAME DOM06_04 DM_TYPE 12 DM_SUBTYPE DM_FLEN 4 @@ -412,7 +412,7 @@ expected_stdout_1 = """ check( value < current_date ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_05 + DM_NAME DOM06_05 DM_TYPE 13 DM_SUBTYPE DM_FLEN 4 @@ -426,7 +426,7 @@ expected_stdout_1 = """ check( value < current_time ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_06 + DM_NAME DOM06_06 DM_TYPE 28 DM_SUBTYPE DM_FLEN 8 @@ -440,7 +440,7 @@ expected_stdout_1 = """ check( value < '23:34:45.678 Pacific/Galapagos' ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_07 + DM_NAME DOM06_07 DM_TYPE 13 DM_SUBTYPE DM_FLEN 4 @@ -454,7 +454,7 @@ expected_stdout_1 = """ check( value < current_timestamp ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_08 + DM_NAME DOM06_08 DM_TYPE 29 DM_SUBTYPE DM_FLEN 12 @@ -468,7 +468,7 @@ expected_stdout_1 = """ check( value < '27.03.2015 23:34:45.678 Pacific/Galapagos' ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_09 + DM_NAME DOM06_09 DM_TYPE 14 DM_SUBTYPE 0 DM_FLEN 4 @@ -482,7 +482,7 @@ expected_stdout_1 = """ check( value = '¢' ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_10 + DM_NAME DOM06_10 DM_TYPE 37 DM_SUBTYPE 0 DM_FLEN 4 @@ -496,7 +496,7 @@ expected_stdout_1 = """ check( value = '¢' ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_11 + DM_NAME DOM06_11 DM_TYPE 14 DM_SUBTYPE 0 DM_FLEN 1 @@ -510,7 +510,7 @@ expected_stdout_1 = """ check( value = 'Ÿ' ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_12 + DM_NAME DOM06_12 DM_TYPE 7 DM_SUBTYPE 1 DM_FLEN 2 @@ -524,7 +524,7 @@ expected_stdout_1 = """ check( value = -327.68 ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_13 + DM_NAME DOM06_13 DM_TYPE 8 DM_SUBTYPE 2 DM_FLEN 4 @@ -538,7 +538,7 @@ expected_stdout_1 = """ check( value = -327.68 ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_14 + DM_NAME DOM06_14 DM_TYPE 10 DM_SUBTYPE DM_FLEN 4 @@ -552,7 +552,7 @@ expected_stdout_1 = """ check( value = 1.40129846432481707092372958328991613128026194187651577175706828388979108268586060148663818836212158203125e-45 ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_15 + DM_NAME DOM06_15 DM_TYPE 10 DM_SUBTYPE DM_FLEN 4 @@ -566,7 +566,7 @@ expected_stdout_1 = """ check( value = 1.40129846432481707092372958328991613128026194187651577175706828388979108268586060148663818836212158203125e-45 ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_16 + DM_NAME DOM06_16 DM_TYPE 27 DM_SUBTYPE DM_FLEN 8 @@ -580,7 +580,7 @@ expected_stdout_1 = """ check( value >= 2e-308 ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_17 + DM_NAME DOM06_17 DM_TYPE 261 DM_SUBTYPE 0 DM_FLEN 8 @@ -591,7 +591,7 @@ expected_stdout_1 = """ DM_FCHRLEN DM_FNULL DM_FVALID_BLOB_ID 2:226 - check( value = + check( value = ' @@ -599,7 +599,7 @@ expected_stdout_1 = """ ') DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_18 + DM_NAME DOM06_18 DM_TYPE 23 DM_SUBTYPE DM_FLEN 1 @@ -613,7 +613,7 @@ expected_stdout_1 = """ check( value is not null ) DM_FDEFAULT_BLOB_ID - DM_NAME DOM06_19 + DM_NAME DOM06_19 DM_TYPE 25 DM_SUBTYPE DM_FLEN 16 @@ -628,7 +628,7 @@ expected_stdout_1 = """ DM_FDEFAULT_BLOB_ID Records affected: 19 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 42000 unsuccessful metadata update @@ -819,12 +819,14 @@ expected_stderr_1 = """ unsuccessful metadata update -ALTER DOMAIN DOM06_19 failed -"Only one constraint allowed for a domain" - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 - act_1.execute(charset='utf8') - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + act_1.execute() + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout + diff --git a/tests/functional/gtcs/test_dsql_domain_12.py b/tests/functional/gtcs/test_dsql_domain_12.py index 7755dd58..b8871b00 100644 --- a/tests/functional/gtcs/test_dsql_domain_12.py +++ b/tests/functional/gtcs/test_dsql_domain_12.py @@ -2,32 +2,32 @@ # # id: functional.gtcs.dsql_domain_12 # title: GTCS/tests/DSQL_DOMAIN_12. Verify result of INSERT DEFAULT VALUES into a table with domain fields when domains are defined with DEFAULT value. -# decription: +# decription: # Original test see in: -# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_12.script -# +# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_12.script +# # ::: NOTE ::: # Added domains with datatype that did appear only in FB 4.0: DECFLOAT and TIME[STAMP] WITH TIME ZONE. For this reason only FB 4.0+ can be tested. -# -# # Comment: This script will run level 1 testing, checking syntax of create -# # domain using datatype and default clauses, then creating a table -# # using the domain fields and inserting data to those fields, -# # allowing missing data to be supplied by the default definitions +# +# # Comment: This script will run level 1 testing, checking syntax of create +# # domain using datatype and default clauses, then creating a table +# # using the domain fields and inserting data to those fields, +# # allowing missing data to be supplied by the default definitions # # for the domain. -# -# +# +# # For some datatypes (float, double precision) we also verify ability to use boundary values for datatype itself. # For character datatypes we use non-asci characters (currency signs: euro, cent, pound, yena). -# +# # Currently following datatypes are NOT checked: # blob sub_type text|binary # long float; # binary(20); # varbinary(20); -# -# Checked on 4.0.0.1935. -# -# tracker_id: +# +# Checked on 4.0.0.1935. +# +# tracker_id: # min_versions: ['4.0'] # versions: 4.0 # qmid: None @@ -66,19 +66,19 @@ test_script_1 = """ create domain dom12_11 as nchar(1) default 'Ö' ; create domain dom12_12 as numeric(2,2) default -327.68; create domain dom12_13 as decimal(20,2) default -999999999999999999; - + -- Online evaluation of expressions: https://www.wolframalpha.com -- https://en.wikipedia.org/wiki/Single-precision_floating-point_format -- (largest number less than one): 1 - power(2,-24) create domain dom12_14 as float default 0.999999940395355224609375; - + -- https://en.wikipedia.org/wiki/Double-precision_floating-point_format -- Max Double: power(2,1023) * ( 1+(1-power(2,-52) ) create domain dom12_15 as double precision default 1.7976931348623157e308; - - - create domain dom12_16 as blob default + + + create domain dom12_16 as blob default ' 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 @@ -248,7 +248,7 @@ test_script_1 = """ create domain dom12_17 as boolean default false; create domain dom12_18 as decfloat(16) default -9.999999999999999E+384; create domain dom12_19 as decfloat default -9.999999999999999999999999999999999E6144; - commit; + commit; recreate table test( f01 dom12_01 @@ -275,7 +275,7 @@ test_script_1 = """ insert into test default values; set count on; select * from test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -288,9 +288,9 @@ F05 23:59:59.9990 F06 11:11:11.1110 Indian/Cocos F07 0001-01-01 00:00:01.0010 F08 2013-12-21 11:11:11.1110 Indian/Cocos -F09 € +F09 € F00 € -F11 Ö +F11 Ö F12 -327.68 F13 -999999999999999999.00 F14 0.99999994 @@ -466,11 +466,11 @@ F18 -9.999999999999999E+384 F19 -9.999999999999999999999999999999999E+6144 Records affected: 1 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 - act_1.execute(charset='utf8') - assert act_1.clean_expected_stdout == act_1.clean_stdout + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_dsql_domain_13.py b/tests/functional/gtcs/test_dsql_domain_13.py index a094ad2e..42460504 100644 --- a/tests/functional/gtcs/test_dsql_domain_13.py +++ b/tests/functional/gtcs/test_dsql_domain_13.py @@ -2,33 +2,33 @@ # # id: functional.gtcs.dsql_domain_13 # title: GTCS/tests/DSQL_DOMAIN_13. Verify result of INSERT DEFAULT for domain-based fields which have their own default values. -# decription: +# decription: # Original test see in: -# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_13.script -# +# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_13.script +# # Comment in GTCS # This script will test level 1 syntax checking for create domain -# statement using datatype and default clauses. The domains are then +# statement using datatype and default clauses. The domains are then # used to create a table where column defaults are also specified. -# Data is then inserted into the table allowing the missing fields -# to be supplied by the column defaults (where specified) and the +# Data is then inserted into the table allowing the missing fields +# to be supplied by the column defaults (where specified) and the # domain defaults (where no column default exists). -# +# # ::: NOTE ::: # Added domains with datatype that did appear only in FB 4.0: DECFLOAT and TIME[STAMP] WITH TIME ZONE. For this reason only FB 4.0+ can be tested. -# +# # Fields without default values have names 'F1xx': f101, f102, ... # Fields with their own default values are 'F2xx': f201, f202, ... -# +# # Currently following datatypes are NOT checked: # blob sub_type text|binary # long float; # binary(20); # varbinary(20); -# +# # Checked on 4.0.0.1954. -# -# tracker_id: +# +# tracker_id: # min_versions: ['4.0'] # versions: 4.0 # qmid: None @@ -67,23 +67,23 @@ test_script_1 = """ create domain dom13_11 as nchar(1) default 'Ö' ; create domain dom13_12 as numeric(2,2) default -327.68; create domain dom13_13 as decimal(20,2) default -999999999999999999; - + -- Online evaluation of expressions: https://www.wolframalpha.com -- https://en.wikipedia.org/wiki/Single-precision_floating-point_format -- (largest number less than one): 1 - power(2,-24) create domain dom13_14 as float default 0.999999940395355224609375; - + -- https://en.wikipedia.org/wiki/Double-precision_floating-point_format -- Max Double: power(2,1023) * ( 1+(1-power(2,-52) ) create domain dom13_15 as double precision default 1.7976931348623157e308; - + create domain dom13_16 as blob default 'Ø'; create domain dom13_17 as boolean default false; create domain dom13_18 as decfloat(16) default -9.999999999999999E+384; create domain dom13_19 as decfloat default -9.999999999999999999999999999999999E6144; - commit; + commit; recreate table test( f101 dom13_01 @@ -120,7 +120,7 @@ test_script_1 = """ ,f211 dom13_11 default 'Ç' ,f212 dom13_12 default 327.67 ,f213 dom13_13 default 999999999999999999 - ,f214 dom13_14 default 1.0000001192 + ,f214 dom13_14 default 1.0000001192 ,f215 dom13_15 default 1.4012984643e-45 ,f216_blob_id dom13_16 default 'Ö' ,f217 dom13_17 default true @@ -129,11 +129,11 @@ test_script_1 = """ ); commit; - + insert into test default values; set count on; select * from test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -146,9 +146,9 @@ expected_stdout_1 = """ F106 11:11:11.1110 Indian/Cocos F107 0001-01-01 00:00:01.0010 F108 2013-12-21 11:11:11.1110 Indian/Cocos - F109 € + F109 € F110 ¢ - F111 Ö + F111 Ö F112 -327.68 F113 -999999999999999999.00 F114 0.99999994 @@ -166,9 +166,9 @@ expected_stdout_1 = """ F206 22:22:22.2220 Pacific/Fiji F207 1234-12-15 12:34:56.7890 F208 2222-12-22 22:22:22.2220 Pacific/Fiji - F209 ¥ + F209 ¥ F210 £ - F211 Ç + F211 Ç F212 327.67 F213 999999999999999999.00 F214 1.0000001 @@ -179,12 +179,12 @@ expected_stdout_1 = """ F218 9.999999999999999E+384 F219 9.999999999999999999999999999999999E+6144 - Records affected: 1 - """ + Records affected: 1 +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 - act_1.execute(charset='utf8') - assert act_1.clean_expected_stdout == act_1.clean_stdout + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_dsql_domain_15.py b/tests/functional/gtcs/test_dsql_domain_15.py index 9edb83c3..4736019b 100644 --- a/tests/functional/gtcs/test_dsql_domain_15.py +++ b/tests/functional/gtcs/test_dsql_domain_15.py @@ -2,29 +2,29 @@ # # id: functional.gtcs.dsql_domain_15 # title: GTCS/tests/DSQL_DOMAIN_15. Verify result of INSERT DEFAULT for domain-based fields which are declared as NOT NULL and have their own default values. -# decription: +# decription: # Original test see in: -# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_15.script -# +# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_15.script +# # Comment in GTCS # This script will utilize the datatype, default and not null -# clauses in the create domain statement. A table is then +# clauses in the create domain statement. A table is then # created using the domain definitions with overriding column -# deafults, then data is added to the table with missing fields +# deafults, then data is added to the table with missing fields # being supplied by the column or domain defaults. -# +# # ::: NOTE ::: # Added domains with datatype that did appear only in FB 4.0: DECFLOAT and TIME[STAMP] WITH TIME ZONE. For this reason only FB 4.0+ can be tested. -# +# # Currently following datatypes are NOT checked: # blob sub_type text|binary # long float; # binary(20); # varbinary(20); -# +# # Checked on 4.0.0.2425. -# -# tracker_id: +# +# tracker_id: # min_versions: ['4.0'] # versions: 4.0 # qmid: None @@ -71,11 +71,11 @@ test_script_1 = """ commit; create table tab15a ( - fld01 dom15_01 default 5000 + fld01 dom15_01 default 5000 ,fld02 dom15_02 default 50000000 ,fld03 dom15_03 default '01/01/90' ,fld04 dom15_04 default 'FIXCHAR DEF' - ,fld05 dom15_05 default 'VARCHAR DEF' + ,fld05 dom15_05 default 'VARCHAR DEF' ,fld06 dom15_06 default 3.1415926 ,fld07 dom15_07 default 500.2 ,fld08 dom15_08 default 2.718281828 @@ -172,7 +172,7 @@ test_script_1 = """ ,o_20 from sp_test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -217,11 +217,11 @@ expected_stdout_1 = """ O_18 O_19 -9.999999999999999E+384 O_20 -9.999999999999999999999999999999999E+6144 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 - act_1.execute(charset='utf8') - assert act_1.clean_expected_stdout == act_1.clean_stdout + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_dsql_domain_20.py b/tests/functional/gtcs/test_dsql_domain_20.py index 8ce07d31..28d342bd 100644 --- a/tests/functional/gtcs/test_dsql_domain_20.py +++ b/tests/functional/gtcs/test_dsql_domain_20.py @@ -2,26 +2,26 @@ # # id: functional.gtcs.dsql_domain_20 # title: GTCS/tests/DSQL_DOMAIN_20. Verify result of ALTER DOMAIN SET/DROP DEFAULT when a table exists with field based on this domain. -# decription: +# decription: # Original test see in: -# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_20.script -# +# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_20.script +# # Comment in GTCS # This script will test using the alter domain statement on domains that are already in use in table definitions. # Related bugs: have to exit db for changes made to domains to affect data being entered into tables. -# +# # ::: NOTE ::: # Added domains with datatype that did appear only in FB 4.0: DECFLOAT and TIME[STAMP] WITH TIME ZONE. For this reason only FB 4.0+ can be tested. -# +# # Currently following datatypes are NOT checked: # blob sub_type text|binary # long float; # binary(20); # varbinary(20); -# +# # Checked on 4.0.0.1954. -# -# tracker_id: +# +# tracker_id: # min_versions: ['4.0'] # versions: 4.0 # qmid: None @@ -60,23 +60,23 @@ test_script_1 = """ create domain dom20_11 as nchar(1) default 'Ö' ; create domain dom20_12 as numeric(2,2) default -327.68; create domain dom20_13 as decimal(20,2) default -999999999999999999; - + -- Online evaluation of expressions: https://www.wolframalpha.com -- https://en.wikipedia.org/wiki/Single-precision_floating-point_format -- (largest number less than one): 1 - power(2,-24) create domain dom20_14 as float default 0.999999940395355224609375; - + -- https://en.wikipedia.org/wiki/Double-precision_floating-point_format -- Max Double: power(2,1023) * ( 1+(1-power(2,-52) ) create domain dom20_15 as double precision default 1.7976931348623157e308; - + create domain dom20_16 as blob default 'Ø'; create domain dom20_17 as boolean default false; create domain dom20_18 as decfloat(16) default -9.999999999999999E+384; create domain dom20_19 as decfloat default -9.999999999999999999999999999999999E6144; - commit; + commit; recreate table test( f01 dom20_01 @@ -100,7 +100,7 @@ test_script_1 = """ ,f19 dom20_19 ); commit; - + insert into test default values; select 'point-1' as msg, t.* from test t; rollback; @@ -153,8 +153,8 @@ test_script_1 = """ insert into test default values; select 'point-3' as msg, t.* from test t; rollback; - - """ + +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -226,12 +226,12 @@ expected_stdout_1 = """ Ö F17 F18 9.999999999999999E+384 - F19 9.999999999999999999999999999999999E+6144 - """ + F19 9.999999999999999999999999999999999E+6144 +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 - act_1.execute(charset='utf8') - assert act_1.clean_expected_stdout == act_1.clean_stdout + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_dsql_domain_21.py b/tests/functional/gtcs/test_dsql_domain_21.py index ecd6f2df..3578c66b 100644 --- a/tests/functional/gtcs/test_dsql_domain_21.py +++ b/tests/functional/gtcs/test_dsql_domain_21.py @@ -2,35 +2,35 @@ # # id: functional.gtcs.dsql_domain_21 # title: GTCS/tests/DSQL_DOMAIN_21. Verify result of ALTER DOMAIN with changing DEFAULT values and DROP constraints when a table exists with field based on this domain. -# decription: +# decription: # Original test see in: -# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_21.script -# +# https://github.com/FirebirdSQL/fbtcs/blob/master/GTCS/tests/DSQL_DOMAIN_21.script +# # Comment in GTCS: # This script will test using the alter domain statement on domains that are already in use in table definitions, # with domain defaults and check constraints. # Related bugs: have to exit db for changes made to domains to affect data being entered into tables. -# +# # We create domains with default values and constraints. Initially we use such default values that PASS requirements of check-constraints. # Statement INSERT DEFAULT and query to the test table is used in order to ensure that we have ability to use such values. -# +# # Then we change values in DEFAULT clause so that all of them will VILOLATE check expressions. Here take domains one-by-one and try to user # INSERT DEFAULT after each such change of DEFAULT value. Every such attempt must fail. -# +# # Then we drop CHECK constraints in all domains and again try INSERT DEFAULT. It must pass and new default values must be stored in the test table. # Finally, we drop DEFAULT in all domains and try INSERT DEFAULT one more time. It must result to NULL value in all fields. -# +# # ::: NB::: Changing default value for BLOB field to one that violates CHECK-expression of domain leads to strange message that does not -# relates to actual problem: SQLSTATE = 22018 / conversion error from string "BLOB". See CORE-6297 for details. -# +# relates to actual problem: SQLSTATE = 22018 / conversion error from string "BLOB". See CORE-6297 for details. +# # ::: NOTE ::: # Added domains with datatype that did appear only in FB 4.0: DECFLOAT and TIME[STAMP] WITH TIME ZONE. For this reason only FB 4.0+ can be tested. -# +# # Checked on 4.0.0.1954. -# +# # 08.04.2021: changed expected output for date 01-jan-0001 after discuss with Adriano. -# -# tracker_id: +# +# tracker_id: # min_versions: ['4.0'] # versions: 4.0 # qmid: None @@ -75,7 +75,7 @@ test_script_1 = """ commit; create domain dom21_01 as smallint default -32768 check (value not in ( select r.rdb$relation_id from rdb$relations r where r.rdb$system_flag = 1 ) ); - + create domain dom21_02 as int default 1500 check ( value in ( @@ -203,13 +203,13 @@ test_script_1 = """ 67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32, 31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1 ) - ) + ) ; - + create domain dom21_04 as date default '01.01.1980' check ( value >='01.01.0001' and value <= '30.12.9999'); - + create domain dom21_05 as time default '23:59:59.999' check ( extract(hour from value) >=21 ); - + create domain dom21_06 as time with time zone default '11:11:11.111 Indian/Cocos' check ( extract(hour from value) <=12 ); create domain dom21_07 as timestamp default '01.01.0001 00:00:01.001' check ( extract(minute from value) = 0 ); create domain dom21_08 as timestamp with time zone default '21.12.2013 11:11:11.111 Indian/Cocos' check ( extract(minute from value) <=30 ); @@ -221,30 +221,30 @@ test_script_1 = """ create domain dom21_11 as nchar(1) default 'Ö' check( value in ('Ö', 'Ø') ); create domain dom21_12 as binary(2) default 'Œ' check( value in ('Œ', 'Ÿ', '¿') ); -- this datatype is alias for char(N) character set octets create domain dom21_13 as varbinary(2) default 'Œ' check( value in ('Œ', 'Ÿ', '¿') ); - + create domain dom21_14 as numeric(2,2) default -327.68 check ( value < 0 ); create domain dom21_15 as decimal(20,2) default -999999999999999999 check( value < 0 ); - + -- Online evaluation of expressions: https://www.wolframalpha.com -- https://en.wikipedia.org/wiki/Single-precision_floating-point_format -- (largest number less than one): 1 - power(2,-24) create domain dom21_16 as float default 0.999999940395355224609375 check( abs(value) < 1 ); - + -- https://en.wikipedia.org/wiki/Double-precision_floating-point_format -- Max Double: power(2,1023) * ( 1+(1-power(2,-52) ) create domain dom21_17 as double precision default 1.7976931348623157e308 check( abs(value) > 1 ); - + create domain dom21_18 as blob default 'Ø' check( value in ('Ö', 'Ø') ); create domain dom21_19 as blob sub_type text default 'W' check (value > ''); create domain dom21_20 as blob sub_type binary default 'f' check (value similar to '([0-9]|[a-f]){1,}'); - + create domain dom21_21 as boolean default false check ( value is not true ); create domain dom21_22 as decfloat(16) default -9.999999999999999E+384 check( log10(abs(value)) >= 384 ); create domain dom21_23 as decfloat default -9.999999999999999999999999999999999E6144 check( log10(abs(value)) >= 6144 ); - commit; - + commit; + --select * from v_test; recreate table test( @@ -273,19 +273,19 @@ test_script_1 = """ ,f23 dom21_23 ); commit; - + set bail off; -- ### NB ### - + insert into test default values; -- this must PASS select 'point-1' as msg, t.* from test t; rollback; - + ---------------------------------- -- Now we change DEFAULT values of domains so that they become violate CHECK expressions: alter domain dom21_01 set default 1; insert into test default values; -- this must FAIL with SQLSTATE = 23000 / validation error for column "TEST"."F01", value "1" alter domain dom21_01 drop constraint; -- in order to have ability to test next domain and field - + alter domain dom21_02 set default -1; insert into test default values; -- validation error for column "TEST"."F02", value "-1" alter domain dom21_02 drop constraint; @@ -293,7 +293,7 @@ test_script_1 = """ alter domain dom21_03 set default 1; insert into test default values; -- validation error for column "TEST"."F03", value "1" alter domain dom21_03 drop constraint; - + alter domain dom21_04 set default '31.12.9999'; insert into test default values; -- validation error for column "TEST"."F04", value "9999-12-31" alter domain dom21_04 drop constraint; @@ -305,7 +305,7 @@ test_script_1 = """ alter domain dom21_06 set default '13:00:00 Indian/Cocos'; insert into test default values; -- validation error for column "TEST"."F06", value "13:00:00.0000 Indian/Cocos" alter domain dom21_06 drop constraint; - + alter domain dom21_07 set default '01.01.0001 01:01:01.001'; insert into test default values; -- validation error for column "TEST"."F07", value "01-JAN-1 1:01:01.0010" // changed 08.04.2021, was: '1-jan' alter domain dom21_07 drop constraint; @@ -375,12 +375,12 @@ test_script_1 = """ alter domain dom21_23 drop constraint; --------------------------------------- - -- Now we have NO constraints in any domain. + -- Now we have NO constraints in any domain. -- We can run again INSERT DEFAULT and verify that new values appear in the table insert into test default values; -- this must PASS select 'point-2' as msg, t.* from test t; -- all values must have now NEW defaults for domains rollback; - + alter domain dom21_01 drop default; alter domain dom21_02 drop default; alter domain dom21_03 drop default; @@ -408,13 +408,13 @@ test_script_1 = """ insert into test default values; -- this must PASS select 'point-3' as msg, t.* from test t; -- all values now must be NULL rollback; - - """ + +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ - MSG point-1 + MSG point-1 F01 -32768 F02 1500 F03 -9223372036854775807 @@ -423,9 +423,9 @@ expected_stdout_1 = """ F06 11:11:11.1110 Indian/Cocos F07 0001-01-01 00:00:01.0010 F08 2013-12-21 11:11:11.1110 Indian/Cocos - F09 € + F09 € F10 ¢ - F11 Ö + F11 Ö F12 C592 F13 C592 F14 -327.68 @@ -444,7 +444,7 @@ expected_stdout_1 = """ - MSG point-2 + MSG point-2 F01 1 F02 -1 F03 1 @@ -453,9 +453,9 @@ expected_stdout_1 = """ F06 13:00:00.0000 Indian/Cocos F07 0001-01-01 01:01:01.0010 F08 2013-12-21 10:31:00.0000 Indian/Cocos - F09 Ő - F10 - F11 + F09 Ő + F10 + F11 F12 C398 F13 C2A2 F14 327.67 @@ -474,7 +474,7 @@ expected_stdout_1 = """ - MSG point-3 + MSG point-3 F01 F02 F03 @@ -498,7 +498,7 @@ expected_stdout_1 = """ F21 F22 F23 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 23000 validation error for column "TEST"."F01", value "1" @@ -568,13 +568,14 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 23000 validation error for column "TEST"."F23", value "-9.999999999999999999999999999999999E+6142" - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 - act_1.execute(charset='utf8') - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + act_1.execute() + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_dsql_domain_22.py b/tests/functional/gtcs/test_dsql_domain_22.py index af1e84a4..520f0079 100644 --- a/tests/functional/gtcs/test_dsql_domain_22.py +++ b/tests/functional/gtcs/test_dsql_domain_22.py @@ -40,7 +40,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -549,9 +549,235 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # runProgram( 'isql', ['-q', '-i', f_run_sql.name] ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) + +expected_stderr_1 = """ + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_SML of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_SML", value "0" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_SML", value "0" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_INT of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_INT", value "500" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_INT", value "500" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_DATE of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_DATE", value "2021-04-20" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_DATE", value "2021-04-20" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_CHAR of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_CHAR", value "Wisła " + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_CHAR", value "Wisła " + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_VCHR of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_VCHR", value "Norrström" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_VCHR", value "Norrström" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_NUM of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_NUM", value "-327.68" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_NUM", value "-327.68" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_DEC of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 22003 + arithmetic exception, numeric overflow, or string truncation + -numeric value is out of range + + Statement failed, SQLSTATE = 22003 + arithmetic exception, numeric overflow, or string truncation + -numeric value is out of range + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_DP of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_DP", value "0.0000000000000000" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_DP", value "0.0000000000000000" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_BIG of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_BIG", value "9223372036854775807" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_BIG", value "9223372036854775807" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_NC of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_NC", value "Y" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_NC", value "Y" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_BIN of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_BIN", value "Ÿ" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_BIN", value "Ÿ" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_VB of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_VB", value "Ÿ" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_VB", value "Ÿ" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_BOO of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_BOO", value "FALSE" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_BOO", value "FALSE" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_DF16 of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_DF16", value "-9.999999999999999E+384" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_DF16", value "-9.999999999999999E+384" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_DF34 of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 42000 + expression evaluation not supported + -Argument for LOG10 must be positive + + Statement failed, SQLSTATE = 42000 + expression evaluation not supported + -Argument for LOG10 must be positive + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_I128 of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_I128", value "170141183460469231731687303715884105727" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_I128", value "170141183460469231731687303715884105727" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_TMTZ of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_TMTZ", value "11:11:11.1110 Indian/Cocos" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_TMTZ", value "11:11:11.1110 Indian/Cocos" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_DTS of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_DTS", value "01-JAN-0001 0:00:01.0010" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_DTS", value "01-JAN-0001 0:00:01.0010" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_TSTZ of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_TSTZ", value "21-DEC-2013 11:11:11.1110 Indian/Cocos" + + Statement failed, SQLSTATE = 23000 + validation error for column "TEST"."X_TSTZ", value "21-DEC-2013 11:11:11.1110 Indian/Cocos" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_BLOB_20 of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 22018 + conversion error from string "BLOB" + + Statement failed, SQLSTATE = 22018 + conversion error from string "BLOB" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_BLOB_21 of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 22018 + conversion error from string "BLOB" + + Statement failed, SQLSTATE = 22018 + conversion error from string "BLOB" + + Statement failed, SQLSTATE = 22006 + unsuccessful metadata update + -Cannot make field X_BLOB_22 of table TEST NOT NULL because there are NULLs present + + Statement failed, SQLSTATE = 22018 + conversion error from string "BLOB" + + Statement failed, SQLSTATE = 22018 + conversion error from string "BLOB" + +""" expected_stdout_1 = """ DM_NAME DOM22_01 @@ -889,237 +1115,10 @@ expected_stdout_1 = """ Ätran X_BLOB_22 97:0 16 - """ -expected_stderr_1 = """ - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_SML of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_SML", value "0" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_SML", value "0" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_INT of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_INT", value "500" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_INT", value "500" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_DATE of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_DATE", value "2021-04-20" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_DATE", value "2021-04-20" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_CHAR of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_CHAR", value "Wisła " - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_CHAR", value "Wisła " - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_VCHR of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_VCHR", value "Norrström" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_VCHR", value "Norrström" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_NUM of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_NUM", value "-327.68" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_NUM", value "-327.68" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_DEC of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 22003 - arithmetic exception, numeric overflow, or string truncation - -numeric value is out of range - - Statement failed, SQLSTATE = 22003 - arithmetic exception, numeric overflow, or string truncation - -numeric value is out of range - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_DP of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_DP", value "0.0000000000000000" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_DP", value "0.0000000000000000" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_BIG of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_BIG", value "9223372036854775807" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_BIG", value "9223372036854775807" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_NC of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_NC", value "Y" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_NC", value "Y" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_BIN of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_BIN", value "Ÿ" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_BIN", value "Ÿ" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_VB of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_VB", value "Ÿ" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_VB", value "Ÿ" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_BOO of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_BOO", value "FALSE" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_BOO", value "FALSE" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_DF16 of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_DF16", value "-9.999999999999999E+384" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_DF16", value "-9.999999999999999E+384" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_DF34 of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 42000 - expression evaluation not supported - -Argument for LOG10 must be positive - - Statement failed, SQLSTATE = 42000 - expression evaluation not supported - -Argument for LOG10 must be positive - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_I128 of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_I128", value "170141183460469231731687303715884105727" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_I128", value "170141183460469231731687303715884105727" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_TMTZ of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_TMTZ", value "11:11:11.1110 Indian/Cocos" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_TMTZ", value "11:11:11.1110 Indian/Cocos" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_DTS of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_DTS", value "01-JAN-0001 0:00:01.0010" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_DTS", value "01-JAN-0001 0:00:01.0010" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_TSTZ of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_TSTZ", value "21-DEC-2013 11:11:11.1110 Indian/Cocos" - - Statement failed, SQLSTATE = 23000 - validation error for column "TEST"."X_TSTZ", value "21-DEC-2013 11:11:11.1110 Indian/Cocos" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_BLOB_20 of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 22018 - conversion error from string "BLOB" - - Statement failed, SQLSTATE = 22018 - conversion error from string "BLOB" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_BLOB_21 of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 22018 - conversion error from string "BLOB" - - Statement failed, SQLSTATE = 22018 - conversion error from string "BLOB" - - Statement failed, SQLSTATE = 22006 - unsuccessful metadata update - -Cannot make field X_BLOB_22 of table TEST NOT NULL because there are NULLs present - - Statement failed, SQLSTATE = 22018 - conversion error from string "BLOB" - - Statement failed, SQLSTATE = 22018 - conversion error from string "BLOB" - - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_execute_statement_within_procedure.py b/tests/functional/gtcs/test_execute_statement_within_procedure.py index 80c0bfed..239e6bde 100644 --- a/tests/functional/gtcs/test_execute_statement_within_procedure.py +++ b/tests/functional/gtcs/test_execute_statement_within_procedure.py @@ -66,7 +66,7 @@ test_script_1 = """ select 'point-1' msg, p.* from rpl$generator_values p; select 'point-2' msg, p.* from rpl$generator_values p; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -86,11 +86,11 @@ expected_stdout_1 = """ MSG point-2 GEN_NAME GEN_TEST2 GEN_VALUE 2222222 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_external_file_03_d.py b/tests/functional/gtcs/test_external_file_03_d.py index 7e133205..785cf003 100644 --- a/tests/functional/gtcs/test_external_file_03_d.py +++ b/tests/functional/gtcs/test_external_file_03_d.py @@ -13,7 +13,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -66,18 +66,9 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # os.remove(f_sql_chk.name) # os.remove( tmp_file ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) -expected_stdout_1 = """ - F01 -32768 - F01 -1 - F01 0 - F01 1 - F01 32767 - Records affected: 5 - """ expected_stderr_1 = """ Statement failed, SQLSTATE = 22003 arithmetic exception, numeric overflow, or string truncation @@ -86,11 +77,19 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 22003 arithmetic exception, numeric overflow, or string truncation -numeric value is out of range - """ +""" + +expected_stdout_1 = """ + F01 -32768 + F01 -1 + F01 0 + F01 1 + F01 32767 + Records affected: 5 +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_external_file_04_d.py b/tests/functional/gtcs/test_external_file_04_d.py index 142e46d2..ac328ae1 100644 --- a/tests/functional/gtcs/test_external_file_04_d.py +++ b/tests/functional/gtcs/test_external_file_04_d.py @@ -13,7 +13,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -66,18 +66,9 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # os.remove(f_sql_chk.name) # os.remove( tmp_file ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) -expected_stdout_1 = """ - F01 -2147483648 - F01 -1 - F01 0 - F01 1 - F01 2147483647 - Records affected: 5 - """ expected_stderr_1 = """ Statement failed, SQLSTATE = 22003 arithmetic exception, numeric overflow, or string truncation @@ -86,11 +77,19 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 22003 arithmetic exception, numeric overflow, or string truncation -numeric value is out of range - """ +""" + +expected_stdout_1 = """ + F01 -2147483648 + F01 -1 + F01 0 + F01 1 + F01 2147483647 + Records affected: 5 +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_external_file_04_d_bigint.py b/tests/functional/gtcs/test_external_file_04_d_bigint.py index c77411a6..4f28267c 100644 --- a/tests/functional/gtcs/test_external_file_04_d_bigint.py +++ b/tests/functional/gtcs/test_external_file_04_d_bigint.py @@ -13,7 +13,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -64,9 +64,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # os.remove(f_sql_chk.name) # os.remove( tmp_file ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ F01 -9223372036854775808 @@ -75,11 +74,10 @@ expected_stdout_1 = """ F01 1 F01 9223372036854775807 Records affected: 5 - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_external_file_04_d_int128.py b/tests/functional/gtcs/test_external_file_04_d_int128.py index 31ae52b8..cf92e01e 100644 --- a/tests/functional/gtcs/test_external_file_04_d_int128.py +++ b/tests/functional/gtcs/test_external_file_04_d_int128.py @@ -13,7 +13,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -64,9 +64,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # os.remove(f_sql_chk.name) # os.remove( tmp_file ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ F01 -170141183460469231731687303715884105728 @@ -75,11 +74,10 @@ expected_stdout_1 = """ F01 1 F01 170141183460469231731687303715884105727 Records affected: 5 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_external_file_06_d.py b/tests/functional/gtcs/test_external_file_06_d.py index 7a929468..d2f2bfa8 100644 --- a/tests/functional/gtcs/test_external_file_06_d.py +++ b/tests/functional/gtcs/test_external_file_06_d.py @@ -17,7 +17,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -66,20 +66,18 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # os.remove(f_sql_chk.name) # os.remove( tmp_file ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ F01 4.940656458412465e-324 F02 0.0000000000000000 F03 1.797693134862273e+308 Records affected: 1 - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_external_file_09_d.py b/tests/functional/gtcs/test_external_file_09_d.py index 8f8046f0..e2eddc58 100644 --- a/tests/functional/gtcs/test_external_file_09_d.py +++ b/tests/functional/gtcs/test_external_file_09_d.py @@ -13,7 +13,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -71,9 +71,13 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # os.remove(f_sql_chk.name) # os.remove( tmp_file ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) + +expected_stderr_1 = """ + Statement failed, SQLSTATE = 22018 + conversion error from string "29-feb-9999" +""" expected_stdout_1 = """ F01 1994-06-28 @@ -84,15 +88,10 @@ expected_stdout_1 = """ Records affected: 5 THIS_DAY_COUNT 2 - """ -expected_stderr_1 = """ - Statement failed, SQLSTATE = 22018 - conversion error from string "29-feb-9999" - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_gtcs_proc_cast_isql.py b/tests/functional/gtcs/test_gtcs_proc_cast_isql.py index 7053ec27..7240c931 100644 --- a/tests/functional/gtcs/test_gtcs_proc_cast_isql.py +++ b/tests/functional/gtcs/test_gtcs_proc_cast_isql.py @@ -17,7 +17,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0.6 # resources: None @@ -109,9 +109,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # Exception raised while executing Python test script. exception: WindowsError: 32 # time.sleep(1) # cleanup( ( f_init_run, f_init_err, f_cast_log, f_cast_err ) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ bigint_bigint 80 @@ -373,11 +372,10 @@ expected_stdout_1 = """ varchar(30)_numeric(5,2) 80.45 varchar(30)_smallint 32767 varchar(30)_time 01:02:03.4560 - """ +""" @pytest.mark.version('>=3.0.6') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_01.py b/tests/functional/gtcs/test_gtcs_proc_isql_01.py index 1bc1e844..83fc0c68 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_01.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_01.py @@ -52,7 +52,7 @@ test_script_1 = """ select 'point-5' msg, p.a, avg(p.a) from proc1 p group by p.a having avg(p.a) > 350; select 'point-6' msg, p.a, avg(p.a) from proc1 p group by p.a ; select 'point-7' msg, p.a from proc1 p where p.a = (select avg(x.a) from proc1 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -87,11 +87,11 @@ expected_stdout_1 = """ MSG A point-7 400 Records affected: 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_02.py b/tests/functional/gtcs/test_gtcs_proc_isql_02.py index 0a400d6d..d3d4c63e 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_02.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_02.py @@ -51,7 +51,7 @@ test_script_1 = """ select 'point-6' msg, p.a, avg(p.c) from proc2 p group by p.a; select 'point-7' msg, p.a, p.c from proc2 p where p.c = (select avg(x.c) from proc2 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -86,11 +86,11 @@ expected_stdout_1 = """ MSG A C point-7 S4 400 Records affected: 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_03.py b/tests/functional/gtcs/test_gtcs_proc_isql_03.py index 2e652f32..7b0c1798 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_03.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_03.py @@ -53,7 +53,7 @@ test_script_1 = """ select 'point-5' msg, p.a, avg(p.c) from proc3 p group by p.a having avg(p.c) > 350; select 'point-6' msg, p.a, avg(p.c) from proc3 p group by p.a; select 'point-7' msg, p.a, p.c from proc3 p where p.c = (select avg(x.c) from proc3 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -88,11 +88,11 @@ expected_stdout_1 = """ MSG A C point-7 P5 400 Records affected: 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_04.py b/tests/functional/gtcs/test_gtcs_proc_isql_04.py index 248e3936..f0b56f24 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_04.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_04.py @@ -53,7 +53,7 @@ test_script_1 = """ select 'point-5' msg, p.a, avg(p.c) from proc4 p group by p.a having avg(p.c) > 35; select 'point-6' msg, p.a, avg(p.c) from proc4 p group by p.a ; select 'point-7' msg, p.a, p.c from proc4 p where p.c = (select avg(x.c) from proc4 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -86,11 +86,11 @@ expected_stdout_1 = """ MSG A C point-7 Red 19 Records affected: 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_05.py b/tests/functional/gtcs/test_gtcs_proc_isql_05.py index a39b7e54..a34ae9b6 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_05.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_05.py @@ -54,7 +54,7 @@ test_script_1 = """ select 'point-5' msg, p.a, avg(p.b) from proc5 p group by p.a; select 'point-6' msg, p.a, p.b from proc5 p where p.b = (select avg(x.b) from proc5 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -87,11 +87,11 @@ expected_stdout_1 = """ MSG A B point-6 Cog 19 Records affected: 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_06.py b/tests/functional/gtcs/test_gtcs_proc_isql_06.py index 2bb623b1..21ff34ac 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_06.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_06.py @@ -52,7 +52,7 @@ test_script_1 = """ select 'point-5' msg, p.a, avg(p.b) from proc6 p group by a having avg(p.b) > 35; select 'point-6' msg, p.a, avg(p.b) from proc6 p group by a ; select 'point-7' msg, p.a , b from proc6 p where b = (select avg(x.b) from proc6 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -85,11 +85,11 @@ expected_stdout_1 = """ MSG A B point-7 Cog 19 Records affected: 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_07.py b/tests/functional/gtcs/test_gtcs_proc_isql_07.py index 923ee23d..b4f186e0 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_07.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_07.py @@ -53,7 +53,7 @@ test_script_1 = """ select 'point-5' msg, p.a, avg(p.a) from proc7 p group by p.a having avg(p.a) > 350; select 'point-6' msg, p.a, avg(p.a) from proc7 p group by p.a; select 'point-7' msg, p.a from proc7 p where p.a = (select avg(x.a) from proc7 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -89,11 +89,11 @@ expected_stdout_1 = """ MSG A point-7 400 Records affected: 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_08.py b/tests/functional/gtcs/test_gtcs_proc_isql_08.py index e4d921e2..574efe3f 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_08.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_08.py @@ -76,7 +76,7 @@ test_script_1 = """ select 'point-6' msg, p.a, avg(p.c) from proc08 p group by p.a order by p.a; select 'point-7' msg, p.a, p.c from proc08 p where p.c < (select avg(x.c) from proc08 x) order by p.a, p.c; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -140,11 +140,11 @@ expected_stdout_1 = """ point-7 S2 300 point-7 S4 300 Records affected: 3 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_10.py b/tests/functional/gtcs/test_gtcs_proc_isql_10.py index 24e05bf1..f7fae5b2 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_10.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_10.py @@ -52,7 +52,7 @@ test_script_1 = """ select 'point-5' msg, p.a, avg(p.c) from proc10 p group by p.a having avg(p.c) > 15; select 'point-6' msg, p.a, avg(p.c) from proc10 p group by p.a; select 'point-7' msg, p.a, p.c from proc10 p where p.c > (select avg(x.c) from proc10 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -95,11 +95,11 @@ expected_stdout_1 = """ MSG A C point-7 Cog 19 Records affected: 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_11.py b/tests/functional/gtcs/test_gtcs_proc_isql_11.py index 2a856077..00ee1970 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_11.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_11.py @@ -48,7 +48,7 @@ test_script_1 = """ select 'point-5' msg, p.a, avg(p.c) from proc11 p group by a having avg(p.c) > 1; select 'point-6' msg, p.a, avg(p.c) from proc11 p group by p.a ; select 'point-7' msg, p.a, p.c from proc11 p where p.c > (select avg(x.c) from proc11 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -99,11 +99,11 @@ expected_stdout_1 = """ MSG A C point-7 P1 2 Records affected: 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_12.py b/tests/functional/gtcs/test_gtcs_proc_isql_12.py index 2fc84d71..0ae77de4 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_12.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_12.py @@ -53,7 +53,7 @@ test_script_1 = """ select 'point-5' msg, p.a, avg(p.b) from proc12 p group by a having avg(p.b) > 350; select 'point-6' msg, p.a, avg(p.b) from proc12 p group by a; select 'point-7' msg, p.a, p.b from proc12 p where b > (select avg(x.b) from proc12 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -90,11 +90,11 @@ expected_stdout_1 = """ MSG A B point-7 Cog 19 Records affected: 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_13.py b/tests/functional/gtcs/test_gtcs_proc_isql_13.py index a1dfb1b6..e77a85ef 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_13.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_13.py @@ -56,7 +56,7 @@ test_script_1 = """ select 'point-7' msg, p.a from proc13 p where p.a > (select avg(x.a) from proc13 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -111,11 +111,11 @@ expected_stdout_1 = """ point-7 19 point-7 20 point-7 30 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_15.py b/tests/functional/gtcs/test_gtcs_proc_isql_15.py index f436d5ba..685acebf 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_15.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_15.py @@ -40,7 +40,7 @@ test_script_1 = """ select 'point-1' msg, p.* from p; execute procedure proc_insert 'P7', 'Widget', 'Pink', 23, 'Hoboken'; select 'point-2' msg, p.* from p; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -61,11 +61,11 @@ expected_stdout_1 = """ point-2 P5 Cam Blue 12 Paris point-2 P6 Cog Red 19 London point-2 P7 Widget Pink 23 Hoboken - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_16.py b/tests/functional/gtcs/test_gtcs_proc_isql_16.py index 837ee6f1..c8400435 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_16.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_16.py @@ -41,7 +41,7 @@ test_script_1 = """ execute procedure proc_insert 'P15', null , 'Pink', null, 'Hoboken'; insert into p values ('P16', null, null, null, 'Varanasi'); select 'point-2' as msg, p.* from p; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -63,11 +63,11 @@ expected_stdout_1 = """ point-2 P6 Cog Red 19 London point-2 P15 Pink Hoboken point-2 P16 Varanasi - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_17.py b/tests/functional/gtcs/test_gtcs_proc_isql_17.py index 1842c568..fe584633 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_17.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_17.py @@ -42,7 +42,7 @@ test_script_1 = """ set term ;^ execute procedure insert_sno 'S10'; select p.* from sp p; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -55,11 +55,11 @@ expected_stdout_1 = """ S4 P4 300 S4 P5 400 S10 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_18.py b/tests/functional/gtcs/test_gtcs_proc_isql_18.py index 6067d88d..4f7db7a2 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_18.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_18.py @@ -44,7 +44,7 @@ test_script_1 = """ select 'point-3' as msg, p.* from sp p; execute procedure proc_select_insert; select 'point-4' as msg, p.* from sp p; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -84,11 +84,11 @@ expected_stdout_1 = """ point-4 S4 P5 400 point-4 S3 point-4 S5 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_19.py b/tests/functional/gtcs/test_gtcs_proc_isql_19.py index 9c14484f..709b2c3f 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_19.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_19.py @@ -45,7 +45,7 @@ test_script_1 = """ select 'result-1' as msg, p.* from sp p; execute procedure proc_select_insert2; select 'result-2' as msg, p.* from sp p; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -67,11 +67,11 @@ expected_stdout_1 = """ result-2 S4 P5 400 result-2 S3 result-2 S5 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_proc_isql_20.py b/tests/functional/gtcs/test_gtcs_proc_isql_20.py index dcca0a92..de2fd237 100644 --- a/tests/functional/gtcs/test_gtcs_proc_isql_20.py +++ b/tests/functional/gtcs/test_gtcs_proc_isql_20.py @@ -49,7 +49,7 @@ test_script_1 = """ select 'result-1' as msg, p.* from sp p; execute procedure proc_select_insert3; select 'result-2' as msg, p.* from sp p; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -70,11 +70,11 @@ expected_stdout_1 = """ result-2 S4 P4 300 result-2 S4 P5 400 result-2 S3 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_gtcs_select_delete_isql.py b/tests/functional/gtcs/test_gtcs_select_delete_isql.py index 5c4b472d..50c8f04e 100644 --- a/tests/functional/gtcs/test_gtcs_select_delete_isql.py +++ b/tests/functional/gtcs/test_gtcs_select_delete_isql.py @@ -69,7 +69,7 @@ test_script_1 = """ select 'point-5' msg, p.* from proc2 p; rollback; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -112,11 +112,11 @@ expected_stdout_1 = """ point-5 S4 point-5 S4 Records affected: 6 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_invalid_stream_when_use_trim.py b/tests/functional/gtcs/test_invalid_stream_when_use_trim.py index a93efe60..d6be98f5 100644 --- a/tests/functional/gtcs/test_invalid_stream_when_use_trim.py +++ b/tests/functional/gtcs/test_invalid_stream_when_use_trim.py @@ -35,17 +35,17 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ set list on; select trim(TRAILING FROM (select max(rdb$relation_id) from rdb$database)) trim_result from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ TRIM_RESULT 128 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_isql_show_command_ambiguity.py b/tests/functional/gtcs/test_isql_show_command_ambiguity.py index 25e9de67..e853bd44 100644 --- a/tests/functional/gtcs/test_isql_show_command_ambiguity.py +++ b/tests/functional/gtcs/test_isql_show_command_ambiguity.py @@ -37,7 +37,7 @@ test_script_1 = """ show table t; show view v; show view t; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -49,17 +49,18 @@ expected_stdout_1 = """ View Source: select a from t - """ +""" expected_stderr_1 = """ There is no table V in this database There is no view T in this database - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_isql_show_command_collation.py b/tests/functional/gtcs/test_isql_show_command_collation.py index 848fcabb..50d0320b 100644 --- a/tests/functional/gtcs/test_isql_show_command_collation.py +++ b/tests/functional/gtcs/test_isql_show_command_collation.py @@ -44,7 +44,7 @@ test_script_1 = """ show domain domain_with_collate_clause; show table table_with_collated_field; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -58,11 +58,11 @@ expected_stdout_1 = """ COLLATE PT_PT CONSTRAINT F01_CHECK: check( field_01 >= 'c' ) - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_minimum_grant_test.py b/tests/functional/gtcs/test_minimum_grant_test.py index 1cbe706c..214a1401 100644 --- a/tests/functional/gtcs/test_minimum_grant_test.py +++ b/tests/functional/gtcs/test_minimum_grant_test.py @@ -70,7 +70,7 @@ test_script_1 = """ insert into test values(2); -- should fail select * from test; -- should pass commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -78,20 +78,21 @@ expected_stdout_1 = """ WHOAMI TMP$QA_USER1 WHOAMI TMP$QA_USER2 C1 1 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 28000 no permission for read/select access to TABLE TEST Statement failed, SQLSTATE = 28000 no permission for insert/write access to TABLE TEST - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_parser_comments_in_sql.py b/tests/functional/gtcs/test_parser_comments_in_sql.py index 8b951dca..012668cc 100644 --- a/tests/functional/gtcs/test_parser_comments_in_sql.py +++ b/tests/functional/gtcs/test_parser_comments_in_sql.py @@ -99,7 +99,7 @@ test_script_1 = """ select * from test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -117,11 +117,11 @@ expected_stdout_1 = """ 1 1 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_ref_integ_drop_fk_index.py b/tests/functional/gtcs/test_ref_integ_drop_fk_index.py index 0388be41..03f630f2 100644 --- a/tests/functional/gtcs/test_ref_integ_drop_fk_index.py +++ b/tests/functional/gtcs/test_ref_integ_drop_fk_index.py @@ -13,7 +13,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -48,13 +48,9 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ''' # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) -expected_stdout_1 = """ - Records affected: 0 - """ expected_stderr_1 = """ Statement failed, SQLSTATE = 27000 unsuccessful metadata update @@ -66,11 +62,14 @@ expected_stderr_1 = """ violation of FOREIGN KEY constraint "REF_KEY" on table "EMPLOYEE" -Foreign key reference target does not exist -Problematic key value is ("DEPT_NO" = '-1') - """ +""" + +expected_stdout_1 = """ + Records affected: 0 +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_ref_integ_drop_fk_then_pk.py b/tests/functional/gtcs/test_ref_integ_drop_fk_then_pk.py index 8f727d3a..0e88ad8a 100644 --- a/tests/functional/gtcs/test_ref_integ_drop_fk_then_pk.py +++ b/tests/functional/gtcs/test_ref_integ_drop_fk_then_pk.py @@ -13,7 +13,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -49,18 +49,16 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ''' # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 1 Records affected: 1 - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_ref_integ_drop_pk_constraint.py b/tests/functional/gtcs/test_ref_integ_drop_pk_constraint.py index c4b86c0e..8a956d1c 100644 --- a/tests/functional/gtcs/test_ref_integ_drop_pk_constraint.py +++ b/tests/functional/gtcs/test_ref_integ_drop_pk_constraint.py @@ -13,7 +13,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -47,13 +47,9 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ''' # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) -expected_stdout_1 = """ - Records affected: 0 - """ expected_stderr_1 = """ Statement failed, SQLSTATE = 27000 unsuccessful metadata update @@ -64,11 +60,14 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 23000 violation of PRIMARY or UNIQUE KEY constraint "DEPT_KEY" on table "DEPARTMENT" -Problematic key value is ("DEPT_NO" = '1') - """ +""" + +expected_stdout_1 = """ + Records affected: 0 +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_ref_integ_drop_pk_index.py b/tests/functional/gtcs/test_ref_integ_drop_pk_index.py index a693b56c..05946cda 100644 --- a/tests/functional/gtcs/test_ref_integ_drop_pk_index.py +++ b/tests/functional/gtcs/test_ref_integ_drop_pk_index.py @@ -13,7 +13,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -47,13 +47,9 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ''' # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) -expected_stdout_1 = """ - Records affected: 0 - """ expected_stderr_1 = """ Statement failed, SQLSTATE = 27000 unsuccessful metadata update @@ -64,11 +60,14 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 23000 violation of PRIMARY or UNIQUE KEY constraint "DEPT_KEY" on table "DEPARTMENT" -Problematic key value is ("DEPT_NO" = '1') - """ +""" + +expected_stdout_1 = """ + Records affected: 0 +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_ref_integ_inactive_fk_index.py b/tests/functional/gtcs/test_ref_integ_inactive_fk_index.py index 3d78af0c..1c592879 100644 --- a/tests/functional/gtcs/test_ref_integ_inactive_fk_index.py +++ b/tests/functional/gtcs/test_ref_integ_inactive_fk_index.py @@ -13,7 +13,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -51,13 +51,9 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ''' # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) -expected_stdout_1 = """ - Records affected: 0 - """ expected_stderr_1 = """ Statement failed, SQLSTATE = 27000 unsuccessful metadata update @@ -69,11 +65,14 @@ expected_stderr_1 = """ violation of FOREIGN KEY constraint "REF_KEY" on table "EMPLOYEE" -Foreign key reference target does not exist -Problematic key value is ("DEPT_NO" = '-1') - """ +""" + +expected_stdout_1 = """ + Records affected: 0 +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_ref_integ_inactive_pk_index.py b/tests/functional/gtcs/test_ref_integ_inactive_pk_index.py index a3608407..d1bbbbc8 100644 --- a/tests/functional/gtcs/test_ref_integ_inactive_pk_index.py +++ b/tests/functional/gtcs/test_ref_integ_inactive_pk_index.py @@ -13,7 +13,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -57,13 +57,9 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ''' # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) -expected_stdout_1 = """ - Records affected: 1 - """ expected_stderr_1 = """ Statement failed, SQLSTATE = 27000 unsuccessful metadata update @@ -74,11 +70,14 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 23000 violation of PRIMARY or UNIQUE KEY constraint "DEPT_KEY" on table "DEPARTMENT" -Problematic key value is ("DEPT_NO" = '1') - """ +""" + +expected_stdout_1 = """ + Records affected: 1 +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_ref_integ_inactive_pk_index_2.py b/tests/functional/gtcs/test_ref_integ_inactive_pk_index_2.py index 6324a81c..c9ca407c 100644 --- a/tests/functional/gtcs/test_ref_integ_inactive_pk_index_2.py +++ b/tests/functional/gtcs/test_ref_integ_inactive_pk_index_2.py @@ -23,7 +23,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -57,13 +57,9 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ''' # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) -expected_stdout_1 = """ - Records affected: 0 - """ expected_stderr_1 = """ Statement failed, SQLSTATE = 27000 unsuccessful metadata update @@ -75,11 +71,14 @@ expected_stderr_1 = """ violation of FOREIGN KEY constraint "REF_KEY" on table "EMPLOYEE" -Foreign key reference target does not exist -Problematic key value is ("DEPT_NO" = '-1') - """ +""" + +expected_stdout_1 = """ + Records affected: 0 +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_regexp_similar_to.py b/tests/functional/gtcs/test_regexp_similar_to.py index 077800f6..7014a60b 100644 --- a/tests/functional/gtcs/test_regexp_similar_to.py +++ b/tests/functional/gtcs/test_regexp_similar_to.py @@ -123,7 +123,7 @@ test_script_1 = """ select 'with_utf8_cast' as msg, str, pattern, iif(cast(str as varchar(20) character set utf8) similar to cast(pattern as varchar(20) character set utf8) escape '\\', 1, 0) from tests order by id; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -248,11 +248,11 @@ with_utf8_cast 2 [1-53-7^5-2] 1 with_utf8_cast 4 [1-53-7^5-2] 1 with_utf8_cast 6 [1-53-7^5-2] 1 with_utf8_cast 8 [1-53-7^5-2] 0 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_regexp_substring_similar_to.py b/tests/functional/gtcs/test_regexp_substring_similar_to.py index eafe317f..7997b0d2 100644 --- a/tests/functional/gtcs/test_regexp_substring_similar_to.py +++ b/tests/functional/gtcs/test_regexp_substring_similar_to.py @@ -58,7 +58,7 @@ test_script_1 = """ select gen_id(g,1), substring('çaaaЫxЫЫcccç' similar '%aaa#"%#"ccc%' escape '#') from rdb$database; select gen_id(g,1), substring(cast('aaaЫxЫЫccc' as varchar(15) character set win1251) similar '%aaa#"%#"ccc%' escape '#') from rdb$database; select gen_id(g,1), cast(substring(cast(_utf8 'aaaЫxЫЫccc' as varchar(10) character set win1251) similar '%aaa#"%#"ccc%' escape '#') as varchar(10) character set utf8) from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -79,11 +79,11 @@ expected_stdout_1 = """ 12 ЫxЫЫ 13 ЫxЫЫ - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_sql_join_03.py b/tests/functional/gtcs/test_sql_join_03.py index 8ac15acf..edfffb34 100644 --- a/tests/functional/gtcs/test_sql_join_03.py +++ b/tests/functional/gtcs/test_sql_join_03.py @@ -66,7 +66,7 @@ test_script_1 = """ ^ set term ;^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -110,11 +110,11 @@ expected_stdout_1 = """ PSQL-test Phillies Philadelphia Pennsylvania PSQL-test Cubs Chicago Illinois PSQL-test Yankees New York New York - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_sql_join_04.py b/tests/functional/gtcs/test_sql_join_04.py index bbe2a39e..e663ae5f 100644 --- a/tests/functional/gtcs/test_sql_join_04.py +++ b/tests/functional/gtcs/test_sql_join_04.py @@ -71,7 +71,7 @@ test_script_1 = """ ^ set term ;^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -115,11 +115,11 @@ expected_stdout_1 = """ PSQL-test Phillies Philadelphia Pennsylvania PSQL-test Cubs Chicago Illinois PSQL-test Yankees New York New York - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_time_zone.py b/tests/functional/gtcs/test_time_zone.py index e132bfd9..e5f3979d 100644 --- a/tests/functional/gtcs/test_time_zone.py +++ b/tests/functional/gtcs/test_time_zone.py @@ -685,7 +685,7 @@ test_script_1 = """ select * from t1^ set term ;^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -1291,7 +1291,7 @@ expected_stdout_1 = """ START_TZM 0 END_TZH -8 END_TZM 0 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 22018 conversion error from string "01:23:45.0000 -03:00" @@ -1318,13 +1318,14 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 23000 attempt to store duplicate value (visible to active transactions) in unique index "TIMESTAMPTZ_UK" -Problematic key value is ("V" = '2018-01-01 14:33:33.0000 +02:00') - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/gtcs/test_transactions_autocommit_1.py b/tests/functional/gtcs/test_transactions_autocommit_1.py index 6fe0ae0b..5072bbd8 100644 --- a/tests/functional/gtcs/test_transactions_autocommit_1.py +++ b/tests/functional/gtcs/test_transactions_autocommit_1.py @@ -31,7 +31,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 2.5 # resources: None @@ -153,20 +153,18 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # time.sleep(1) # cleanup( ( f_init_sql, f_init_log, f_init_err) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ mon$auto_commit: 1 test_1 777 test_2 5439 test_3 603729 - """ +""" @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_transactions_autocommit_2.py b/tests/functional/gtcs/test_transactions_autocommit_2.py index da375c3d..faf016b8 100644 --- a/tests/functional/gtcs/test_transactions_autocommit_2.py +++ b/tests/functional/gtcs/test_transactions_autocommit_2.py @@ -34,7 +34,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 2.5 # resources: None @@ -158,19 +158,17 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # time.sleep(1) # cleanup( ( f_init_sql, f_init_log, f_init_err) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ mon$auto_commit: 1 exception occured, gdscode: 335544349 test_3 1000 - """ +""" @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_transactions_autocommit_3.py b/tests/functional/gtcs/test_transactions_autocommit_3.py index 9a14258a..cdb79653 100644 --- a/tests/functional/gtcs/test_transactions_autocommit_3.py +++ b/tests/functional/gtcs/test_transactions_autocommit_3.py @@ -36,7 +36,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 2.5 # resources: None @@ -111,20 +111,18 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # tx.close() # db_conn.close() # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ mon$auto_commit: 1 x: 3 x: 300 x: 30000 - """ +""" @pytest.mark.version('>=2.5') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_trigger_variable_assignment.py b/tests/functional/gtcs/test_trigger_variable_assignment.py index 6bffae59..8d6174a3 100644 --- a/tests/functional/gtcs/test_trigger_variable_assignment.py +++ b/tests/functional/gtcs/test_trigger_variable_assignment.py @@ -37,7 +37,7 @@ test_script_1 = """ i = old.a; end^ commit^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) diff --git a/tests/functional/gtcs/test_window_func_01.py b/tests/functional/gtcs/test_window_func_01.py index b75a0b9c..a73ad415 100644 --- a/tests/functional/gtcs/test_window_func_01.py +++ b/tests/functional/gtcs/test_window_func_01.py @@ -17,7 +17,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -452,9 +452,25 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ''' # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) + +expected_stderr_1 = """ + Statement failed, SQLSTATE = 42000 + Dynamic SQL Error + -SQL error code = -104 + -Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause) + + Statement failed, SQLSTATE = 42000 + Dynamic SQL Error + -SQL error code = -104 + -Cannot use an aggregate or window function in a WHERE clause, use HAVING (for aggregate only) instead + + Statement failed, SQLSTATE = 42000 + Dynamic SQL Error + -SQL error code = -104 + -Cannot use an aggregate or window function in a WHERE clause, use HAVING (for aggregate only) instead +""" expected_stdout_1 = """ MSG point-01 @@ -2536,27 +2552,10 @@ expected_stdout_1 = """ COUNT 1 COUNT 2 COUNT 2 - """ -expected_stderr_1 = """ - Statement failed, SQLSTATE = 42000 - Dynamic SQL Error - -SQL error code = -104 - -Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause) - - Statement failed, SQLSTATE = 42000 - Dynamic SQL Error - -SQL error code = -104 - -Cannot use an aggregate or window function in a WHERE clause, use HAVING (for aggregate only) instead - - Statement failed, SQLSTATE = 42000 - Dynamic SQL Error - -SQL error code = -104 - -Cannot use an aggregate or window function in a WHERE clause, use HAVING (for aggregate only) instead - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_window_func_02.py b/tests/functional/gtcs/test_window_func_02.py index c00aed3e..34a69390 100644 --- a/tests/functional/gtcs/test_window_func_02.py +++ b/tests/functional/gtcs/test_window_func_02.py @@ -17,7 +17,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -202,9 +202,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ MSG point-01 @@ -1391,11 +1390,10 @@ expected_stdout_1 = """ MAX 16 MIN MAX - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_window_func_03.py b/tests/functional/gtcs/test_window_func_03.py index 625be553..c8a5458c 100644 --- a/tests/functional/gtcs/test_window_func_03.py +++ b/tests/functional/gtcs/test_window_func_03.py @@ -17,7 +17,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -142,9 +142,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ MSG point-01 @@ -589,11 +588,10 @@ expected_stdout_1 = """ VAL SRN 4 ROW_NUMBER 16 - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_window_func_04.py b/tests/functional/gtcs/test_window_func_04.py index d80424a6..c74d24dd 100644 --- a/tests/functional/gtcs/test_window_func_04.py +++ b/tests/functional/gtcs/test_window_func_04.py @@ -17,7 +17,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -113,9 +113,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ MSG point-1 @@ -662,11 +661,10 @@ expected_stdout_1 = """ LEAD LAG 25.10 LEAD -1.00 - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/gtcs/test_window_func_05.py b/tests/functional/gtcs/test_window_func_05.py index 3172f9b7..b8f65e3f 100644 --- a/tests/functional/gtcs/test_window_func_05.py +++ b/tests/functional/gtcs/test_window_func_05.py @@ -19,7 +19,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -321,9 +321,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # runProgram('isql', [ dsn], os.linesep.join( (sql_init, sql_addi) ) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ MSG point-01 @@ -1954,11 +1953,10 @@ expected_stdout_1 = """ X3 100000 X4 100000 X5 100000 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/index/alter/test_01.py b/tests/functional/index/alter/test_01.py index dd705220..ebea3f04 100644 --- a/tests/functional/index/alter/test_01.py +++ b/tests/functional/index/alter/test_01.py @@ -39,18 +39,18 @@ test_script_1 = """ rdb$index_inactive as is_inactive from rdb$indices where rdb$index_name=upper('test_idx'); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ IDX_NAME TEST_IDX IS_INACTIVE 1 - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/alter/test_02.py b/tests/functional/index/alter/test_02.py index d9592f2b..80fbfda9 100644 --- a/tests/functional/index/alter/test_02.py +++ b/tests/functional/index/alter/test_02.py @@ -40,18 +40,18 @@ test_script_1 = """ select rdb$index_name, rdb$index_inactive from rdb$indices where rdb$index_name=upper('test_active_state_toggle_idx'); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RDB$INDEX_NAME TEST_ACTIVE_STATE_TOGGLE_IDX RDB$INDEX_INACTIVE 0 - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/alter/test_03.py b/tests/functional/index/alter/test_03.py index 36a5b49d..c860a4ac 100644 --- a/tests/functional/index/alter/test_03.py +++ b/tests/functional/index/alter/test_03.py @@ -40,7 +40,7 @@ test_script_1 = """ ,r.rdb$unique_flag as is_unique from rdb$indices r where rdb$index_name=upper('test_idx_unq'); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -48,11 +48,11 @@ expected_stdout_1 = """ IDX_NAME TEST_IDX_UNQ IS_INACTIVE 1 IS_UNIQUE 1 - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/alter/test_04.py b/tests/functional/index/alter/test_04.py index f4ee9ddd..93eb3570 100644 --- a/tests/functional/index/alter/test_04.py +++ b/tests/functional/index/alter/test_04.py @@ -36,12 +36,11 @@ unsuccessful metadata update -ALTER INDEX PKINDX failed -action cancelled by trigger (3) to preserve data integrity -Cannot deactivate index used by a PRIMARY/UNIQUE constraint - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/index/alter/test_05.py b/tests/functional/index/alter/test_05.py index 90f18201..232aa7f7 100644 --- a/tests/functional/index/alter/test_05.py +++ b/tests/functional/index/alter/test_05.py @@ -44,12 +44,11 @@ unsuccessful metadata update -ALTER INDEX FKINDX failed -action cancelled by trigger (2) to preserve data integrity -Cannot deactivate index used by an integrity constraint - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/index/create/test_01.py b/tests/functional/index/create/test_01.py index c4404c19..c021bdac 100644 --- a/tests/functional/index/create/test_01.py +++ b/tests/functional/index/create/test_01.py @@ -31,12 +31,11 @@ SHOW INDEX test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST INDEX ON T(A) -""" +expected_stdout_1 = """TEST INDEX ON T(A)""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/create/test_02.py b/tests/functional/index/create/test_02.py index 39b2bcd9..89b9c758 100644 --- a/tests/functional/index/create/test_02.py +++ b/tests/functional/index/create/test_02.py @@ -32,12 +32,11 @@ SHOW INDEX test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST UNIQUE INDEX ON T(A) -""" +expected_stdout_1 = """TEST UNIQUE INDEX ON T(A)""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/create/test_03.py b/tests/functional/index/create/test_03.py index 8a5fbb70..ec0e9388 100644 --- a/tests/functional/index/create/test_03.py +++ b/tests/functional/index/create/test_03.py @@ -37,5 +37,5 @@ expected_stdout_1 = """TEST INDEX ON T(A)""" def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/create/test_04.py b/tests/functional/index/create/test_04.py index a0d8689a..06c9faa8 100644 --- a/tests/functional/index/create/test_04.py +++ b/tests/functional/index/create/test_04.py @@ -31,12 +31,11 @@ SHOW INDEX test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST INDEX ON T(A) -""" +expected_stdout_1 = """TEST INDEX ON T(A)""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/create/test_05.py b/tests/functional/index/create/test_05.py index 50919f4a..0710f797 100644 --- a/tests/functional/index/create/test_05.py +++ b/tests/functional/index/create/test_05.py @@ -30,12 +30,11 @@ SHOW INDEX test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST DESCENDING INDEX ON T(A) -""" +expected_stdout_1 = """TEST DESCENDING INDEX ON T(A)""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/create/test_06.py b/tests/functional/index/create/test_06.py index 41e68f52..eb73f794 100644 --- a/tests/functional/index/create/test_06.py +++ b/tests/functional/index/create/test_06.py @@ -32,12 +32,11 @@ SHOW INDEX test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST DESCENDING INDEX ON T(A) -""" +expected_stdout_1 = """TEST DESCENDING INDEX ON T(A)""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/create/test_07.py b/tests/functional/index/create/test_07.py index 24dd325f..619275b8 100644 --- a/tests/functional/index/create/test_07.py +++ b/tests/functional/index/create/test_07.py @@ -38,5 +38,5 @@ expected_stdout_1 = """TEST INDEX ON T(A, B, C, D)""" def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/create/test_08.py b/tests/functional/index/create/test_08.py index 7c6a8d02..397d0508 100644 --- a/tests/functional/index/create/test_08.py +++ b/tests/functional/index/create/test_08.py @@ -40,12 +40,11 @@ SHOW INDEX test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST INDEX ON T(A) -""" +expected_stdout_1 = """TEST INDEX ON T(A)""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/create/test_09.py b/tests/functional/index/create/test_09.py index 5e5544e8..8753b023 100644 --- a/tests/functional/index/create/test_09.py +++ b/tests/functional/index/create/test_09.py @@ -38,12 +38,11 @@ SHOW INDEX test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """TEST UNIQUE INDEX ON T(A) -""" +expected_stdout_1 = """TEST UNIQUE INDEX ON T(A)""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/index/create/test_10.py b/tests/functional/index/create/test_10.py index b74aaa9d..cc9c1a40 100644 --- a/tests/functional/index/create/test_10.py +++ b/tests/functional/index/create/test_10.py @@ -37,12 +37,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42S11 unsuccessful metadata update -CREATE INDEX TEST failed -Index TEST already exists - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/index/create/test_11.py b/tests/functional/index/create/test_11.py index b4d44f5e..a5cee7f6 100644 --- a/tests/functional/index/create/test_11.py +++ b/tests/functional/index/create/test_11.py @@ -41,12 +41,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stderr_1 = """Statement failed, SQLSTATE = 23000 attempt to store duplicate value (visible to active transactions) in unique index "TEST" --Problematic key value is ("A" = 0) -""" +-Problematic key value is ("A" = 0)""" @pytest.mark.version('>=2.5.3') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/intfunc/avg/test_01.py b/tests/functional/intfunc/avg/test_01.py index df34a856..2b5c43f5 100644 --- a/tests/functional/intfunc/avg/test_01.py +++ b/tests/functional/intfunc/avg/test_01.py @@ -35,11 +35,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ AVG ===================== - 5""" +5""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/avg/test_02.py b/tests/functional/intfunc/avg/test_02.py index d56cb9f7..3a0bdf50 100644 --- a/tests/functional/intfunc/avg/test_02.py +++ b/tests/functional/intfunc/avg/test_02.py @@ -35,11 +35,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ AVG ===================== - 5""" +5""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/avg/test_03.py b/tests/functional/intfunc/avg/test_03.py index d5bdbb23..33505dc4 100644 --- a/tests/functional/intfunc/avg/test_03.py +++ b/tests/functional/intfunc/avg/test_03.py @@ -36,11 +36,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ AVG ===================== - 5""" +5""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/avg/test_04.py b/tests/functional/intfunc/avg/test_04.py index 2bf0f578..86560189 100644 --- a/tests/functional/intfunc/avg/test_04.py +++ b/tests/functional/intfunc/avg/test_04.py @@ -37,11 +37,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ AVG ===================== - 5""" +5""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/avg/test_05.py b/tests/functional/intfunc/avg/test_05.py index 89906fe3..19352ca7 100644 --- a/tests/functional/intfunc/avg/test_05.py +++ b/tests/functional/intfunc/avg/test_05.py @@ -34,11 +34,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ AVG ===================== - 6""" +6""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/avg/test_06.py b/tests/functional/intfunc/avg/test_06.py index b865fbbd..0be5514c 100644 --- a/tests/functional/intfunc/avg/test_06.py +++ b/tests/functional/intfunc/avg/test_06.py @@ -8,6 +8,9 @@ # 09.07.2020, 4.0.0.2091: # NO more overflow since INT128 was introduced. AVG() is evaluated successfully. # Removed error message from expected_stderr, added result into expected_stdout. +# +# 27.07.2021: changed sqltype in FB 4.x+ to 580 INT64: this is needed since fix #6874. +# Checked on 5.0.0.113, 4.0.1.2539. # # tracker_id: # min_versions: [] @@ -39,7 +42,7 @@ test_script_1 = """ set list on; set sqlda_display on; select * from v_test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -49,19 +52,20 @@ expected_stdout_1 = """ 01: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8 : name: AVG_RESULT alias: AVG_RESULT : table: V_TEST owner: SYSDBA - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 22003 Integer overflow. The result of an integer operation caused the most significant bit of the result to carry. - """ +""" @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -85,21 +89,21 @@ test_script_2 = """ set list on; set sqlda_display on; select * from v_test; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) expected_stdout_2 = """ - 01: sqltype: 32752 INT128 Nullable scale: 0 subtype: 0 len: 16 + 01: sqltype: 580 INT64 Nullable scale: 0 subtype: 0 len: 8 : name: AVG_RESULT alias: AVG_RESULT : table: V_TEST owner: SYSDBA AVG_RESULT 4410000000000000000 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/intfunc/avg/test_07.py b/tests/functional/intfunc/avg/test_07.py index b1017f18..86f615f6 100644 --- a/tests/functional/intfunc/avg/test_07.py +++ b/tests/functional/intfunc/avg/test_07.py @@ -35,11 +35,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ AVG ===================== - 13""" +13""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/avg/test_08.py b/tests/functional/intfunc/avg/test_08.py index 799950b7..c238681f 100644 --- a/tests/functional/intfunc/avg/test_08.py +++ b/tests/functional/intfunc/avg/test_08.py @@ -32,11 +32,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ AVG ===================== - """ +""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/avg/test_09.py b/tests/functional/intfunc/avg/test_09.py index 11a7f48d..33ac430d 100644 --- a/tests/functional/intfunc/avg/test_09.py +++ b/tests/functional/intfunc/avg/test_09.py @@ -34,11 +34,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ AVG ======================= - 5.123456789000000""" +5.123456789000000""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/binary/test_and_01.py b/tests/functional/intfunc/binary/test_and_01.py index a970e942..1cd070f7 100644 --- a/tests/functional/intfunc/binary/test_and_01.py +++ b/tests/functional/intfunc/binary/test_and_01.py @@ -37,12 +37,11 @@ expected_stdout_1 = """ BIN_AND ============ 0 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/binary/test_or_01.py b/tests/functional/intfunc/binary/test_or_01.py index c5d064fb..0b69057a 100644 --- a/tests/functional/intfunc/binary/test_or_01.py +++ b/tests/functional/intfunc/binary/test_or_01.py @@ -45,12 +45,11 @@ expected_stdout_1 = """ BIN_OR 0 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/binary/test_shl_01.py b/tests/functional/intfunc/binary/test_shl_01.py index b4384c6a..b930c1b5 100644 --- a/tests/functional/intfunc/binary/test_shl_01.py +++ b/tests/functional/intfunc/binary/test_shl_01.py @@ -22,8 +22,7 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """select BIN_SHL( 8,1) from rdb$database; -""" +test_script_1 = """select BIN_SHL( 8,1) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -32,12 +31,11 @@ expected_stdout_1 = """ BIN_SHL 16 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/binary/test_shr_01.py b/tests/functional/intfunc/binary/test_shr_01.py index 4ce5c840..fd168464 100644 --- a/tests/functional/intfunc/binary/test_shr_01.py +++ b/tests/functional/intfunc/binary/test_shr_01.py @@ -22,8 +22,7 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """select BIN_SHR( 8,1) from rdb$database; -""" +test_script_1 = """select BIN_SHR( 8,1) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -33,12 +32,11 @@ expected_stdout_1 = """ BIN_SHR - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/binary/test_xor_01.py b/tests/functional/intfunc/binary/test_xor_01.py index 3fafc317..f7bfdab1 100644 --- a/tests/functional/intfunc/binary/test_xor_01.py +++ b/tests/functional/intfunc/binary/test_xor_01.py @@ -24,8 +24,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select BIN_XOR( 0,1) from rdb$database; select BIN_XOR( 0,0) from rdb$database; -select BIN_XOR( 1,1) from rdb$database; -""" +select BIN_XOR( 1,1) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -45,12 +44,11 @@ expected_stdout_1 = """ BIN_XOR - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_01.py b/tests/functional/intfunc/cast/test_01.py index fe9dc26e..8831aa5c 100644 --- a/tests/functional/intfunc/cast/test_01.py +++ b/tests/functional/intfunc/cast/test_01.py @@ -31,12 +31,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """CAST ===================== -1.25001 -""" +1.25001""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_02.py b/tests/functional/intfunc/cast/test_02.py index 9fe12bbd..6752e11f 100644 --- a/tests/functional/intfunc/cast/test_02.py +++ b/tests/functional/intfunc/cast/test_02.py @@ -31,12 +31,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """CAST ===================== -1.25001 -""" +1.25001""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_03.py b/tests/functional/intfunc/cast/test_03.py index 6fbe1cfe..3bda5147 100644 --- a/tests/functional/intfunc/cast/test_03.py +++ b/tests/functional/intfunc/cast/test_03.py @@ -41,6 +41,7 @@ def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_04.py b/tests/functional/intfunc/cast/test_04.py index e66ef984..c9d1d641 100644 --- a/tests/functional/intfunc/cast/test_04.py +++ b/tests/functional/intfunc/cast/test_04.py @@ -32,12 +32,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CAST ======= - 1.2 -""" +1.2""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_05.py b/tests/functional/intfunc/cast/test_05.py index e16ca59d..7af50899 100644 --- a/tests/functional/intfunc/cast/test_05.py +++ b/tests/functional/intfunc/cast/test_05.py @@ -32,12 +32,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CAST ======= - 1.3 -""" +1.3""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_06.py b/tests/functional/intfunc/cast/test_06.py index ab637858..af0b8343 100644 --- a/tests/functional/intfunc/cast/test_06.py +++ b/tests/functional/intfunc/cast/test_06.py @@ -32,12 +32,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CAST ============ - 1 -""" +1""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_07.py b/tests/functional/intfunc/cast/test_07.py index 6d8b1421..b782e396 100644 --- a/tests/functional/intfunc/cast/test_07.py +++ b/tests/functional/intfunc/cast/test_07.py @@ -31,12 +31,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """CAST ============ 2 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_08.py b/tests/functional/intfunc/cast/test_08.py index 52041c35..b06cd0db 100644 --- a/tests/functional/intfunc/cast/test_08.py +++ b/tests/functional/intfunc/cast/test_08.py @@ -39,5 +39,5 @@ expected_stdout_1 = """ CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_09.py b/tests/functional/intfunc/cast/test_09.py index ebac74ce..8d227828 100644 --- a/tests/functional/intfunc/cast/test_09.py +++ b/tests/functional/intfunc/cast/test_09.py @@ -41,6 +41,7 @@ def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_10.py b/tests/functional/intfunc/cast/test_10.py index 86a83cf3..2cef484b 100644 --- a/tests/functional/intfunc/cast/test_10.py +++ b/tests/functional/intfunc/cast/test_10.py @@ -33,12 +33,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CAST ============= -14:34:59.1234 -""" +14:34:59.1234""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_11.py b/tests/functional/intfunc/cast/test_11.py index 96fb65fa..b5b0e371 100644 --- a/tests/functional/intfunc/cast/test_11.py +++ b/tests/functional/intfunc/cast/test_11.py @@ -38,5 +38,5 @@ expected_stdout_1 = """ CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_12.py b/tests/functional/intfunc/cast/test_12.py index 3131d6d0..49f0bfaa 100644 --- a/tests/functional/intfunc/cast/test_12.py +++ b/tests/functional/intfunc/cast/test_12.py @@ -41,6 +41,7 @@ def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_13.py b/tests/functional/intfunc/cast/test_13.py index 7547de09..d493501e 100644 --- a/tests/functional/intfunc/cast/test_13.py +++ b/tests/functional/intfunc/cast/test_13.py @@ -39,5 +39,5 @@ expected_stdout_1 = """ CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_14.py b/tests/functional/intfunc/cast/test_14.py index 039854d4..2677a9fa 100644 --- a/tests/functional/intfunc/cast/test_14.py +++ b/tests/functional/intfunc/cast/test_14.py @@ -39,5 +39,5 @@ expected_stdout_1 = """ CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_15.py b/tests/functional/intfunc/cast/test_15.py index 401e0540..085e5a7d 100644 --- a/tests/functional/intfunc/cast/test_15.py +++ b/tests/functional/intfunc/cast/test_15.py @@ -40,5 +40,5 @@ expected_stdout_1 = """CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_16.py b/tests/functional/intfunc/cast/test_16.py index 0e6831a4..986d9111 100644 --- a/tests/functional/intfunc/cast/test_16.py +++ b/tests/functional/intfunc/cast/test_16.py @@ -40,5 +40,5 @@ expected_stdout_1 = """CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_17.py b/tests/functional/intfunc/cast/test_17.py index 9b6fa13e..f6b61387 100644 --- a/tests/functional/intfunc/cast/test_17.py +++ b/tests/functional/intfunc/cast/test_17.py @@ -40,5 +40,5 @@ expected_stdout_1 = """ CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_18.py b/tests/functional/intfunc/cast/test_18.py index 10488256..27af0120 100644 --- a/tests/functional/intfunc/cast/test_18.py +++ b/tests/functional/intfunc/cast/test_18.py @@ -40,5 +40,5 @@ expected_stdout_1 = """CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_19.py b/tests/functional/intfunc/cast/test_19.py index 87211b5b..6cf22047 100644 --- a/tests/functional/intfunc/cast/test_19.py +++ b/tests/functional/intfunc/cast/test_19.py @@ -40,5 +40,5 @@ expected_stdout_1 = """CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_20.py b/tests/functional/intfunc/cast/test_20.py index e1685bf8..af940681 100644 --- a/tests/functional/intfunc/cast/test_20.py +++ b/tests/functional/intfunc/cast/test_20.py @@ -40,5 +40,5 @@ expected_stdout_1 = """CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_21.py b/tests/functional/intfunc/cast/test_21.py index 52d8b676..e9ffa4be 100644 --- a/tests/functional/intfunc/cast/test_21.py +++ b/tests/functional/intfunc/cast/test_21.py @@ -40,5 +40,5 @@ expected_stdout_1 = """CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_22.py b/tests/functional/intfunc/cast/test_22.py index d85f4c10..34071dc1 100644 --- a/tests/functional/intfunc/cast/test_22.py +++ b/tests/functional/intfunc/cast/test_22.py @@ -40,5 +40,5 @@ expected_stdout_1 = """ CAST def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/cast/test_23.py b/tests/functional/intfunc/cast/test_23.py index 2c2bd87c..79ad8f43 100644 --- a/tests/functional/intfunc/cast/test_23.py +++ b/tests/functional/intfunc/cast/test_23.py @@ -34,12 +34,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CAST ============= -00:59:59.1000 -""" +00:59:59.1000""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/count/test_01.py b/tests/functional/intfunc/count/test_01.py index 36a403b9..3aa73c9f 100644 --- a/tests/functional/intfunc/count/test_01.py +++ b/tests/functional/intfunc/count/test_01.py @@ -32,12 +32,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ COUNT ===================== 0 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/count/test_02.py b/tests/functional/intfunc/count/test_02.py index fd02a66f..23a407e6 100644 --- a/tests/functional/intfunc/count/test_02.py +++ b/tests/functional/intfunc/count/test_02.py @@ -43,12 +43,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ COUNT COUNT COUNT ===================== ===================== ===================== 9 6 2 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_dateadd_01.py b/tests/functional/intfunc/date/test_dateadd_01.py index 578fa63a..7edb4a33 100644 --- a/tests/functional/intfunc/date/test_dateadd_01.py +++ b/tests/functional/intfunc/date/test_dateadd_01.py @@ -34,12 +34,11 @@ expected_stdout_1 = """ YESTERDAY =========== 2008-02-05 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_dateadd_02.py b/tests/functional/intfunc/date/test_dateadd_02.py index 25248ff8..da9fd87d 100644 --- a/tests/functional/intfunc/date/test_dateadd_02.py +++ b/tests/functional/intfunc/date/test_dateadd_02.py @@ -55,7 +55,7 @@ test_script_1 = """ -- old test code: -- select dateadd(-1 month TO date '2008-02-06' ) as yesterday from rdb$database; -- select dateadd(month,-1, date '2008-02-06' ) as yesterday from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -83,11 +83,11 @@ expected_stdout_1 = """ NONL_FEB_28_MINUS_11_MONTH 2002-03-28 NONL_FEB_28_MINUS_12_MONTH 2002-02-28 NONL_MAR_31_MINUS_01_MONTH 2003-02-28 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_dateadd_03.py b/tests/functional/intfunc/date/test_dateadd_03.py index 7a820e34..7204cdee 100644 --- a/tests/functional/intfunc/date/test_dateadd_03.py +++ b/tests/functional/intfunc/date/test_dateadd_03.py @@ -21,8 +21,7 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select dateadd(-1 year TO date '2008-02-06' ) as yesterday from rdb$database; -select dateadd(year,-1, date '2008-02-06' ) as yesterday from rdb$database; -""" +select dateadd(year,-1, date '2008-02-06' ) as yesterday from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -35,12 +34,11 @@ expected_stdout_1 = """ YESTERDAY =========== 2007-02-06 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_dateadd_04.py b/tests/functional/intfunc/date/test_dateadd_04.py index 1b5f1bff..6bb03d61 100644 --- a/tests/functional/intfunc/date/test_dateadd_04.py +++ b/tests/functional/intfunc/date/test_dateadd_04.py @@ -21,8 +21,7 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select dateadd(-1 day TO timestamp '2008-02-06 10:10:00' ) as yesterday from rdb$database; -select dateadd(day,-1, timestamp '2008-02-06 10:10:00' ) as yesterday from rdb$database; -""" +select dateadd(day,-1, timestamp '2008-02-06 10:10:00' ) as yesterday from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -35,12 +34,11 @@ expected_stdout_1 = """ YESTERDAY ========================= 2008-02-05 10:10:00.0000 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_dateadd_05.py b/tests/functional/intfunc/date/test_dateadd_05.py index cdc15025..271fa5b2 100644 --- a/tests/functional/intfunc/date/test_dateadd_05.py +++ b/tests/functional/intfunc/date/test_dateadd_05.py @@ -34,12 +34,11 @@ expected_stdout_1 = """ YESTERDAY ============= 11:12:00.0000 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_dateadd_06.py b/tests/functional/intfunc/date/test_dateadd_06.py index c748404d..861f95a0 100644 --- a/tests/functional/intfunc/date/test_dateadd_06.py +++ b/tests/functional/intfunc/date/test_dateadd_06.py @@ -21,8 +21,7 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select dateadd(-1 minute to time '12:12:00' ) as yesterday from rdb$database; -select dateadd(minute,-1, time '12:12:00' ) as yesterday from rdb$database; -""" +select dateadd(minute,-1, time '12:12:00' ) as yesterday from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -35,12 +34,11 @@ expected_stdout_1 = """ YESTERDAY ============= 12:11:00.0000 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_dateadd_07.py b/tests/functional/intfunc/date/test_dateadd_07.py index 7b8c9362..55e9ef08 100644 --- a/tests/functional/intfunc/date/test_dateadd_07.py +++ b/tests/functional/intfunc/date/test_dateadd_07.py @@ -14,33 +14,32 @@ from firebird.qa import db_factory, isql_act, Action # version: 2.1 # resources: None -substitutions_1 = [] +substitutions_1 = [('^((?!sqltype:|DD_).)*$', ''), ('[ \t]+', ' '), ('.*alias:.*', '')] init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """select dateadd(-1 second to time '12:12:00' ) as yesterday from rdb$database; -select dateadd(second,-1, time '12:12:00' ) as yesterday from rdb$database; +test_script_1 = """ + set list on; + set sqlda_display on; + select dateadd(-1 second to time '12:12:00' ) as tx_1 from rdb$database; + select dateadd(second,-1, time '12:12:00' ) as tx_2 from rdb$database; """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ - YESTERDAY -============= -12:11:59.0000 - - - YESTERDAY -============= -12:11:59.0000 + 01: sqltype: 560 TIME scale: 0 subtype: 0 len: 4 + TX_1 12:11:59.0000 + 01: sqltype: 560 TIME scale: 0 subtype: 0 len: 4 + TX_2 12:11:59.0000 """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_dateadd_08.py b/tests/functional/intfunc/date/test_dateadd_08.py index 06bde350..ea655d0a 100644 --- a/tests/functional/intfunc/date/test_dateadd_08.py +++ b/tests/functional/intfunc/date/test_dateadd_08.py @@ -21,8 +21,7 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select dateadd(-1 millisecond to time '12:12:00:0000' ) as test from rdb$database; -select dateadd(millisecond,-1, time '12:12:00:0000' ) as test from rdb$database; -""" +select dateadd(millisecond,-1, time '12:12:00:0000' ) as test from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -35,12 +34,11 @@ expected_stdout_1 = """ TEST ============= 12:11:59.9990 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_datediff_01.py b/tests/functional/intfunc/date/test_datediff_01.py index 3ed040c4..060075c8 100644 --- a/tests/functional/intfunc/date/test_datediff_01.py +++ b/tests/functional/intfunc/date/test_datediff_01.py @@ -34,12 +34,11 @@ expected_stdout_1 = """ DATEDIFF ===================== 2 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_datediff_02.py b/tests/functional/intfunc/date/test_datediff_02.py index 03235c07..b5d145f5 100644 --- a/tests/functional/intfunc/date/test_datediff_02.py +++ b/tests/functional/intfunc/date/test_datediff_02.py @@ -34,12 +34,11 @@ expected_stdout_1 = """ DATEDIFF ===================== 1 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_datediff_03.py b/tests/functional/intfunc/date/test_datediff_03.py index 5950bcf5..d84b8dcc 100644 --- a/tests/functional/intfunc/date/test_datediff_03.py +++ b/tests/functional/intfunc/date/test_datediff_03.py @@ -34,12 +34,11 @@ expected_stdout_1 = """ DATEDIFF ===================== 1 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_datediff_04.py b/tests/functional/intfunc/date/test_datediff_04.py index ce9ac3c8..928f5c99 100644 --- a/tests/functional/intfunc/date/test_datediff_04.py +++ b/tests/functional/intfunc/date/test_datediff_04.py @@ -34,12 +34,11 @@ expected_stdout_1 = """ DATEDIFF ===================== 1 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_datediff_05.py b/tests/functional/intfunc/date/test_datediff_05.py index 3ccc46a0..1fcb83f0 100644 --- a/tests/functional/intfunc/date/test_datediff_05.py +++ b/tests/functional/intfunc/date/test_datediff_05.py @@ -34,12 +34,11 @@ expected_stdout_1 = """ DATEDIFF ===================== 12 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_datediff_06.py b/tests/functional/intfunc/date/test_datediff_06.py index 7683aba5..337e62ef 100644 --- a/tests/functional/intfunc/date/test_datediff_06.py +++ b/tests/functional/intfunc/date/test_datediff_06.py @@ -21,8 +21,7 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select datediff(DAY,cast( '12/02/2008 13:33:33' as timestamp),cast( '12/02/2009 13:34:35' as timestamp)) from rdb$database; -select datediff(DAY FROM cast( '12/02/2008 13:33:33' as timestamp) TO cast( '12/02/2009 13:34:35' as timestamp)) from rdb$database; -""" +select datediff(DAY FROM cast( '12/02/2008 13:33:33' as timestamp) TO cast( '12/02/2009 13:34:35' as timestamp)) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -35,12 +34,11 @@ expected_stdout_1 = """ DATEDIFF ===================== 365 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_datediff_07.py b/tests/functional/intfunc/date/test_datediff_07.py index c0e6f124..c8bc32ad 100644 --- a/tests/functional/intfunc/date/test_datediff_07.py +++ b/tests/functional/intfunc/date/test_datediff_07.py @@ -5,13 +5,13 @@ # decription: Returns an exact numeric value representing the interval of time from the first date/time/timestamp value to the second one. # tracker_id: # min_versions: [] -# versions: 2.1 +# versions: 3.0 # qmid: functional.intfunc.date.datediff_07 import pytest from firebird.qa import db_factory, isql_act, Action -# version: 2.1 +# version: 3.0 # resources: None substitutions_1 = [] @@ -20,26 +20,44 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """select datediff(MILLISECOND,cast( '12/02/2008 13:33:33.0001' as timestamp),cast( '12/02/2008 13:33:35.0000' as timestamp)) from rdb$database; -select datediff(MILLISECOND FROM cast( '12/02/2008 13:33:33.0001' as timestamp) TO cast( '12/02/2008 13:33:35.0000' as timestamp)) from rdb$database;""" +test_script_1 = """ + set list on; + set list on; + select datediff( millisecond, + cast( '01.01.0001 00:00:00.0001' as timestamp), + cast( '31.12.9999 23:59:59.9999' as timestamp) + ) as dd_01a from rdb$database; + + select datediff( millisecond, + time '00:00:00.0001', + time '23:59:59.9999' + ) as dd_01b from rdb$database; + + + select datediff( millisecond + from cast( '01.01.0001 00:00:00.0001' as timestamp) + to cast( '31.12.9999 23:59:59.9999' as timestamp) + ) as dd_02a from rdb$database; + + select datediff( millisecond + from cast( '00:00:00.0001' as time) + to cast( '23:59:59.9999' as time) + ) as dd_02b from rdb$database; + +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ - DATEDIFF -===================== - 1999 - - - DATEDIFF -===================== - 1999 - + DD_01A 315537897599999.8 + DD_01B 86399999.8 + DD_02A 315537897599999.8 + DD_02B 86399999.8 """ -@pytest.mark.version('>=2.1') +@pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_extract_01.py b/tests/functional/intfunc/date/test_extract_01.py index c4f3b26e..1d349278 100644 --- a/tests/functional/intfunc/date/test_extract_01.py +++ b/tests/functional/intfunc/date/test_extract_01.py @@ -28,12 +28,11 @@ expected_stdout_1 = """ EXTRACT EXTRACT ======= ======= 1 53 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/date/test_extract_02.py b/tests/functional/intfunc/date/test_extract_02.py index 6d56f4c9..eab5b594 100644 --- a/tests/functional/intfunc/date/test_extract_02.py +++ b/tests/functional/intfunc/date/test_extract_02.py @@ -21,8 +21,7 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select extract(millisecond from time '12:12:00.1111' ) as test from rdb$database; -select extract(millisecond from timestamp '2008-12-08 12:12:00.1111' ) as test from rdb$database; -""" +select extract(millisecond from timestamp '2008-12-08 12:12:00.1111' ) as test from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -35,12 +34,11 @@ expected_stdout_1 = """ TEST ============ 111.1 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/encryption/test_block_cipher_basic.py b/tests/functional/intfunc/encryption/test_block_cipher_basic.py index 79f924f9..2e49b098 100644 --- a/tests/functional/intfunc/encryption/test_block_cipher_basic.py +++ b/tests/functional/intfunc/encryption/test_block_cipher_basic.py @@ -1,15 +1,15 @@ #coding:utf-8 # # id: functional.intfunc.encryption.block_cipher_basic -# title: +# title: # Verify block crypto algorithms that are implemented in ENCRYPT/DECRYPT built-in functions. # See doc\\sql.extensions\\README.builtin_functions.txt for details. -# +# # Checked on 4.0.0.1691: OK, 1.561s. -# -# decription: -# -# tracker_id: +# +# decription: +# +# tracker_id: # min_versions: ['4.0'] # versions: 4.0 # qmid: None @@ -56,7 +56,7 @@ test_script_1 = """ 'cfb', lpad('', cast(rdb$get_context('USER_SESSION', 'DATA_LEN') as int),uuid_to_char(gen_uuid()) ), '0101010101010101', - lpad('',16, uuid_to_char( gen_uuid() )) + lpad('',16, uuid_to_char( gen_uuid() )) ); @@ -71,7 +71,7 @@ test_script_1 = """ 'ctr', lpad('', cast(rdb$get_context('USER_SESSION', 'DATA_LEN') as int),uuid_to_char(gen_uuid()) ), lpad('',16, replace(uuid_to_char(gen_uuid()),'-','') ), - lpad('',16, uuid_to_char( gen_uuid() )) + lpad('',16, uuid_to_char( gen_uuid() )) ); @@ -102,7 +102,7 @@ test_script_1 = """ 'ofb', lpad('', cast(rdb$get_context('USER_SESSION', 'DATA_LEN') as int),uuid_to_char(gen_uuid()) ), lpad('',16, replace(uuid_to_char(gen_uuid()),'-','') ), - lpad('',16, uuid_to_char( gen_uuid() )) + lpad('',16, uuid_to_char( gen_uuid() )) ); ------------------------------------------------------ @@ -117,7 +117,7 @@ test_script_1 = """ from test_char where crypto_alg = 'AES' ; - + insert into test_char select @@ -141,7 +141,7 @@ test_script_1 = """ from test_char where crypto_alg = 'AES' ; - + insert into test_char select @@ -153,7 +153,7 @@ test_script_1 = """ from test_char where crypto_alg = 'AES' ; - + insert into test_char select @@ -165,7 +165,7 @@ test_script_1 = """ from test_char where crypto_alg = 'AES' ; - + insert into test_char select @@ -229,7 +229,7 @@ test_script_1 = """ do begin v_encrypt_sttm = 'select encrypt( q''{' || c.source_text || '}'' using ' || c.crypto_alg || coalesce( ' mode ' || c.mode , '' ) || ' key q''{' || c.crypto_key || '}''' || coalesce(' iv q''{' || c.crypto_iv || '}'' ', '') || ') from rdb$database'; execute statement v_encrypt_sttm into v_encrypted; - + --v_decrypt_sttm = 'select decrypt( q''{' || v_encrypted || '}'' using ' || c.crypto_alg || coalesce( ' mode ' || c.mode , '' ) || ' key q''{' || c.crypto_key || '}''' || coalesce(' iv q''{' || c.crypto_iv || '}'' ', '') || ') from rdb$database'; --v_decrypt_sttm = 'select decrypt( x''' || v_encrypted || ''' using ' || c.crypto_alg || coalesce( ' mode ' || c.mode , '' ) || ' key q''{' || c.crypto_key || '}''' || coalesce(' iv q''{' || c.crypto_iv || '}'' ', '') || ') from rdb$database'; v_decrypt_sttm = 'select decrypt( cast(? as varbinary(32700)) using ' || c.crypto_alg || coalesce( ' mode ' || c.mode , '' ) || ' key q''{' || c.crypto_key || '}''' || coalesce(' iv q''{' || c.crypto_iv || '}'' ', '') || ') from rdb$database'; @@ -250,234 +250,233 @@ test_script_1 = """ set term ;^ commit; - select * from sp_char_block_test; + select * from sp_char_block_test; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CRYPTO_ALG AES MODE CFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE CTR - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE ECB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE OFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG ANUBIS MODE CFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG ANUBIS MODE CTR - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG ANUBIS MODE ECB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG ANUBIS MODE OFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG BLOWFISH MODE CFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG BLOWFISH MODE CTR - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG BLOWFISH MODE ECB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG BLOWFISH MODE OFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG KHAZAD MODE CFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG KHAZAD MODE CTR - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG KHAZAD MODE ECB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG KHAZAD MODE OFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG RC5 MODE CFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG RC5 MODE CTR - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG RC5 MODE ECB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG RC5 MODE OFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG RC6 MODE CFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG RC6 MODE CTR - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG RC6 MODE ECB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG RC6 MODE OFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG "SAFER+" MODE CFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG "SAFER+" MODE CTR - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG "SAFER+" MODE ECB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG "SAFER+" MODE OFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG TWOFISH MODE CFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG TWOFISH MODE CTR - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG TWOFISH MODE ECB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG TWOFISH MODE OFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG XTEA MODE CFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG XTEA MODE CTR - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG XTEA MODE ECB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG XTEA MODE OFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): - act_1.charset = 'NONE' act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/encryption/test_block_cipher_special.py b/tests/functional/intfunc/encryption/test_block_cipher_special.py index 4a72eb10..7c2cca5e 100644 --- a/tests/functional/intfunc/encryption/test_block_cipher_special.py +++ b/tests/functional/intfunc/encryption/test_block_cipher_special.py @@ -1,16 +1,16 @@ #coding:utf-8 # # id: functional.intfunc.encryption.block_cipher_special -# title: +# title: # Verify block crypto algorithms that are implemented in ENCRYPT/DECRYPT built-in functions. # Additional tests for key length = 192 and 256 bits. # See doc\\sql.extensions\\README.builtin_functions.txt for details. -# +# # Checked on 4.0.0.1691: OK, 1.343s. -# -# decription: -# -# tracker_id: +# +# decription: +# +# tracker_id: # min_versions: ['4.0'] # versions: 4.0 # qmid: None @@ -43,7 +43,7 @@ test_script_1 = """ ^ set term ;^ - + --############################ AES mode OFB ########################## insert into test_char( crypto_alg, @@ -56,7 +56,7 @@ test_script_1 = """ 'ofb', lpad('', cast(rdb$get_context('USER_SESSION', 'DATA_LEN') as int),uuid_to_char(gen_uuid()) ), lpad('', 24, '01'), -- 192 bits - lpad('',16, uuid_to_char( gen_uuid() )) + lpad('',16, uuid_to_char( gen_uuid() )) ); insert into test_char( @@ -70,7 +70,7 @@ test_script_1 = """ 'ofb', lpad('', cast(rdb$get_context('USER_SESSION', 'DATA_LEN') as int),uuid_to_char(gen_uuid()) ), lpad('', 32, '01'), -- 256 bits - lpad('',16, uuid_to_char( gen_uuid() )) + lpad('',16, uuid_to_char( gen_uuid() )) ); @@ -87,7 +87,7 @@ test_script_1 = """ 'cfb', lpad('', cast(rdb$get_context('USER_SESSION', 'DATA_LEN') as int),uuid_to_char(gen_uuid()) ), lpad('', 24, '01'), -- 192 bits - lpad('',16, uuid_to_char( gen_uuid() )) + lpad('',16, uuid_to_char( gen_uuid() )) ); insert into test_char( @@ -101,7 +101,7 @@ test_script_1 = """ 'cfb', lpad('', cast(rdb$get_context('USER_SESSION', 'DATA_LEN') as int),uuid_to_char(gen_uuid()) ), lpad('', 32, '01'), -- 256 bits - lpad('',16, uuid_to_char( gen_uuid() )) + lpad('',16, uuid_to_char( gen_uuid() )) ); @@ -117,7 +117,7 @@ test_script_1 = """ 'ctr', lpad('', cast(rdb$get_context('USER_SESSION', 'DATA_LEN') as int),uuid_to_char(gen_uuid()) ), lpad('', 24, '01'), -- 192 bits - lpad('',16, uuid_to_char( gen_uuid() )) + lpad('',16, uuid_to_char( gen_uuid() )) ); insert into test_char( @@ -131,7 +131,7 @@ test_script_1 = """ 'ctr', lpad('', cast(rdb$get_context('USER_SESSION', 'DATA_LEN') as int),uuid_to_char(gen_uuid()) ), lpad('', 32, '01'), -- 256 bits - lpad('',16, uuid_to_char( gen_uuid() )) + lpad('',16, uuid_to_char( gen_uuid() )) ); @@ -173,7 +173,7 @@ test_script_1 = """ 'cbc', lpad('', cast(rdb$get_context('USER_SESSION', 'DATA_LEN') as int),uuid_to_char(gen_uuid()) ), lpad('', 24, '01'), -- 192 bits - lpad('', 16, uuid_to_char( gen_uuid() )) + lpad('', 16, uuid_to_char( gen_uuid() )) ); insert into test_char( @@ -230,7 +230,7 @@ select encrypt( lpad('', 16, 'A') using aes mode cbc key '1234567890123456789012 do begin v_encrypt_sttm = 'select encrypt( q''{' || c.source_text || '}'' using ' || c.crypto_alg || coalesce( ' mode ' || c.mode , '' ) || ' key q''{' || c.crypto_key || '}''' || coalesce(' iv q''{' || c.crypto_iv || '}'' ', '') || ') from rdb$database'; execute statement v_encrypt_sttm into v_encrypted; - + v_decrypt_sttm = 'select decrypt( cast(? as varbinary(32700)) using ' || c.crypto_alg || coalesce( ' mode ' || c.mode , '' ) || ' key q''{' || c.crypto_key || '}''' || coalesce(' iv q''{' || c.crypto_iv || '}'' ', '') || ') from rdb$database'; execute statement ( v_decrypt_sttm ) ( v_encrypted ) into v_decrypted; @@ -249,78 +249,77 @@ select encrypt( lpad('', 16, 'A') using aes mode cbc key '1234567890123456789012 set term ;^ commit; - select * from sp_char_block_test; + select * from sp_char_block_test; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CRYPTO_ALG AES MODE OFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE OFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE CFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE CFB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE CTR - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE CTR - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE ECB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE ECB - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE CBC - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT CRYPTO_ALG AES MODE CBC - RESULT_MSG Source and decrypted strings are identical. + RESULT_MSG Source and decrypted strings are identical. SRC_TEXT DECRYPTED_TEXT - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): - act_1.charset = 'NONE' act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/encryption/test_rsa_family.py b/tests/functional/intfunc/encryption/test_rsa_family.py new file mode 100644 index 00000000..2da5dc91 --- /dev/null +++ b/tests/functional/intfunc/encryption/test_rsa_family.py @@ -0,0 +1,343 @@ +#coding:utf-8 +# +# id: functional.intfunc.encryption.rsa_family +# title: Basic test for RSA-family: rsa_private(), rsa_public(), rsa_encrypt(), rsa_decrypt(), rsa_sign_hash() and rsa_verify_hash() +# decription: +# We create table with one record and write in it UTF8 text with enough length. +# Then we get random substring from this text and use it as "source message" that will be encrypted further. +# After this test generates private and public keys and uses them for two tasks: +# 1) get RSA signature of crypted_hash of source message (using private key) +# and verify it (using public key); RSA_VERIFY_HASH must return ; +# 2) encrypt source message, then decrypt it and compare result of decryption with original text. They must be equal. +# +# All these actions are applied against four algorithms: MD5, SHA1, SHA256 and SHA512. +# +# NB: code for FB 5.x is separated from FB 4.x because of renamed functions rsa_sign_hash() and rsa_verify_hash(), +# see: https://github.com/FirebirdSQL/firebird/issues/6806 +# +# ::: NOTE ::: +# It was encountered maximal number of octets in the source text must NOT exceed 126. +# Otherwise usage of SHA512 will fail with: +# Statement failed, SQLSTATE = 22023 +# TomCrypt library error: Invalid sized parameter. +# -Encrypting using cipher RSA +# Because of this, we must limit length of generated UTF8 "source text" is limited by 63 - see variable 'lorem' in EB. +# (greec and cyrillic characters are used here in the source text; they both require 2 bytes per character). +# +# Checked on 4.0.0.2479; 5.0.0.20. +# 22.05.2021: correction because of renamed functions rsa_sign and rsa_verify: suffix "_hash" was added to their names after ~14.05.2021 +# +# tracker_id: +# min_versions: ['4.0'] +# versions: 4.0, 5.0 +# qmid: None + +import pytest +from firebird.qa import db_factory, isql_act, Action + +# version: 4.0 +# resources: None + +substitutions_1 = [] + +init_script_1 = """""" + +db_1 = db_factory(sql_dialect=3, init=init_script_1) + +test_script_1 = """ + set list on; + recreate table rsa( + text_unencrypted varchar(256) + ,k_prv varbinary(16384) + ,k_pub varbinary(8192) + ,text_rsa_sign varchar(8192) + ,text_rsa_vrfy boolean + ,text_encrypted varchar(256) + ,text_decrypted varchar(256) + ); + insert into rsa default values; + + set term ^; + execute block returns( + rsa_sign_len_mg5 smallint + ,rsa_vrfy_md5 boolean + ,rsa_sign_len_sha1 smallint + ,rsa_vrfy_sha1 boolean + ,rsa_sign_len_sha256 smallint + ,rsa_vrfy_sha256 boolean + ,rsa_sign_len_sha512 smallint + ,rsa_vrfy_sha512 boolean + ,encr_octet_len_md5 smallint + ,decryption_result_md5 varchar(3) + ,encr_octet_len_sha1 smallint + ,decryption_result_sha1 varchar(3) + ,encr_octet_len_sha256 smallint + ,decryption_result_sha256 varchar(3) + ,encr_octet_len_sha512 smallint + ,decryption_result_sha512 varchar(3) + ) + as + declare lorem varchar(8190) character set utf8; + declare p_beg smallint; + declare n_for smallint; + begin + lorem = 'ΛορεμιπσθμδολορσιταμετvισιδνοvθμαλτερθμcομπλεcτιτθρτεναμηομεροβλανδιτμελανqθοδμοδοδολορεμΑτσεδγραεcιδελεcτθσcθειθσπροπριαεμολεστιαεθσθανηισqθοδσιποστθλαντπερτιναcιαΛαθδεμεqθιδεματηισΔθοπορροτολλιτπλατονεμαναλιιπαθλοcονστιτθαμqθοανΠρορεπθδιαρεcονσεqθθντθρεξνεcεθθνθμσολεαττεvελσθασcασελεγιμθσΝεεvερτιτθραππελλαντθρvισθτναμνοστερμολλισvολθπταριαΑγαμδολορεφφιcιαντθραννεcΑφφερτσιγνιφερθμqθεπριεισθασλθδθσδεσερθισσειδπερΠροβοπονδερθμετvιξετσιτστετφαcερρεφερρεντθρΕιαεqθετολλιτπροπριαεμεαvιξεθσθασδισπθτανδοΛαβορεφαcετεvολθπτατθμαδcθμηαβεοvιρισδολορετμελΑγαμλιβερβλανδιτηασαδvιμcθαεqθειντερεσσετVισεξvενιαμομνεσqθεινvενιρεCασεcονσετετθρvισατεvερτιφορενσιβθσσθσcιπιαντθρεξηισΕτπερτολλιτεριπθιτσαπιεντεμvελνεqθαεqθεποστθλανταεqθεηονεστατισεοσανΣονετεριπθιτεθvισλεγερεαδολεσcενσετναμCιβοαβηορρεαντινμεαναμηαβεοvιταειναδηισμαλισριδενσcορρθμπιτΝεcαδπριμισμενανδριμαγναqθαεστιοεξπλιcαριεθθσθνεqθοcομμοδοαετερνοαργθμεντθμΣθμοvιτθπερατοριβθσεστθτΜειτεvενιαμσεμπερΠαθλοαλβθcιθσvισατCθεαμφερριδοcτθσοφφενδιτεστατνατθμμθτατΕαμελτριτανιελαβοραρετλθδθσσcριπτορεμπερετΣεαειανιμαλcοντεντιονεσομιτταμλθcιλιθσπερνεΑπεριριπερσιθσαλτερθμθσθνονεcαπειριανοπορτερενεΑδμειμεισφαcερπθταντvιμcασεμοvεττραcτατοσεξΑππετερεμανδαμθσνοηιστιμεαμqθαεqθεδελενιτετεστvιρτθτετεμποριβθσδθοτεΜοδοινιμιcθσεισεαεοσιναφφερττεμπορcομμοδοΕνιμqθοτειρμοδcθπεραδολεσcενσπηιλοσοπηιαvιξεαΘτιναμνοστρθδvιστεπροειφαλλιλατινερεφορμιδανσΕθμαθδιαμεξπετενδισλιβεραvισσεεαεξοcθρρερετπροδεσσετσιτΝαμεξcοντεντιονεσδετερρθισσετvιστεδθισαθδιρεΕξμαλορθμcονσεqθατμνεσαρcηθμσεδΑδπροομνεσqθεcονστιτθαμλιβεραvισσεεξνθλλαμδοcτθσινδοcτθμεαμΕιηασμολλισομιτταμνεcδιcθντλθcιλιθσανταντασποσσιμιθvαρετεοσετΕιεραντμαιεστατισνεcεθμμοδθσαλιqθανδοεαVιμεθισμοδτορqθατοσδεσερθισσεειεαπροπονδερθμπερφεcτοQθοvιρισcαθσαετιβιqθετεσεδδιcοεσσελαορεετνοΑσσθμλθδθσβλανδιτεοσεξΦαcιλισοφφενδιτεαμεξατσιτπορροφαcιλισΗασπερφεcτοσεντεντιαεαccομμοδαρενοΗαβεοαλβθcιθσcονcλθσιονεμqθεατεοσμελαττατιονcονσετετθρjθστοαδιπισcιτεεοσΔιcαμρατιονιβθσσιγνιφερθμqθεεθμνομεισολεταδμοδθμνοφαcερταcιματεσεξπετενδισηισαδΗισcθπρομπτατορqθατοσvιξαδμελιορεπερcιπιτΕqθιδεμταcιματεσεθριπιδισιδπερμελατιλλθμεqθιδεμαccθμσανΕιαπεριαμινcορρθπτενεcΕιδθοδελιcαταρεφορμιδανσσολθμεθισμοδεθπερΔθορεβθμαλιqθιπδενιqθεθτcθqθιεσσεελιτδεσερθντΑμετσcριπταπαρτιενδονεvιμνοθσθιλλθμπορροπθτεντιδλαβορεσαλιενθμπροΑφφερτατομορθμcορρθμπιτναμαδαλιqθαμινερμισμεντιτθμεαμ' + || 'ЛоремипсумдолорситаметехяуилибердоцендицоррумпитЕраталиенумносеаЕхтотатациматесирацундиаеумехерцицонсецтетуеридцумПробоатяуиделицатиссимиехяуосумосусципиантурхасехПродебитисмандамусеунеприиллудсонетрегионеТееамлегеремандамусПереталиатинцидунтНецибодицамлаудемусуанприталенуллаДолоресвертеремсплендидецумеуадмелопортересигниферумяуеАнвитаеорнатусопортеатеосадвисвениаминермисделенитиВихсуавитатенеглегентуртееумелталеиллуммалуиссетЕросмелиорехисеуПутентпосидониумтенецДицантделенитменандриутмеаадяуолатинеаргументумнемеиалтерумерудитицомплецтитурЦибототавидитеумцуменандрилаборамусеунамадагамграецохисЕхеумассумяуаестиоатеосцибомоллисТемелнолуиссеинтеллегатделицатиссимиНолаудемцонституамаппеллантурцумнецяуотграеценеЕпицуреипхаедруместехнулладебетеумутЕтхисенимаугуемуциуссцрипсеритвелидЕтвимунумволуптариасеабрутеинтеллегамцуМеатеелеифендмнесарчумяуисверотемпорибусусуанидперуллуминтеллегатХомероевертитурпосидониумиусетеимелвероаеяуеФацерпосситпробатусеинецСиттецонгуецонцептамседфацермоллислабитуринХабеосусципиантуридхасцасемаиоруминцорруптеехеосеосомнисвивендумаппеллантуранЕхмеаплацератплатонемцонцлусионемяуеПосситперицулаеамеаетдуофацерволуптариаяуаерендумДесеруиссесцриптореминяуиеивимпромптафеугиатхисеуетиамимпедитНовисопортеатволуптарианеглегентурдицампоссимеаяуиусуидаппетереинцидеринтцонцлудатуряуеДицоцорпорамеицуПервениамсаперетнеяуиеадолорессапиентемалияуандоансимуларгументумперВереарнонуместоряуатосмелетвисрецтеяуемолестиаецонсеяуунтуреиеоснеоффендитволуптуаратионибусСеаноессесаперетреформидансвимяуидамратионибусвитуператаеисединвидевидитДесерунтрепудиаределицатиссимицувиханперсиусерипуитцотидиеяуеприЯуимагнаиуваретфацилисцуинмоветириуреатоморумеамВисимпетусрецтеяуеевертитуреабрутериденсдолореснамнеНееффициантурделицатиссимияуоМеиеааеяуепосситнемореНовимяуаслудусаццусатаеиеумвертеремлуцилиусперсеяуерисНевелунумвероелояуентиамехпроеррорцонститутоантиопамеррорибусяуитеЕосепицуриоцурреретулламцорперноЕтомниуминструцтиорнамСитинутинамевертинихилдесеруиссееиперСедтеверосимулдигниссимпетентиумвулпутатенамеуНостроалияуамеуцумАлиипондерумхонестатисеапроутвихевертииндоцтумсапиентеметсеаодиоцаусаеПротеимпердиетсигниферумяуеЕамеиаццумсаномиттантурДуиснобиспертинахнецанцуцумалиенумпатриояуеадолесценсдебетнумяуамехприПаулоаперирилаореетяуиинмелнофастидиипетентиумЗриланциллаесадипсцингин'; + + -- while (1=1) do + -- begin + p_beg = cast( 1 + rand() * ( char_length(lorem) - 63 ) as smallint); + n_for = 63; -- cast( 8 + rand() * (63-8) as smallint); + update rsa set text_unencrypted = substring(:lorem from :p_beg for :n_for); + + rdb$set_context('USER_SESSION', 'SOURCE_TEXT', (select text_unencrypted from rsa rows 1)); + + update rsa set k_prv = rsa_private(256); + update rsa set k_pub = rsa_public(k_prv); + -- update rsa set text_decrypted = rsa_decrypt(cast(text_encrypted as varbinary(32760)) key k_prv ); + + ------------------------------------------------- + -- RSA_SIGN_HASH ( KEY [HASH ] [SALT_LENGTH ] ) + -- RSA_VERIFY_HASH ( SIGNATURE KEY [HASH ] [SALT_LENGTH ] ) + -- RSA_ENCRYPT ( KEY [LPARAM ] [HASH ]) + -- ::= { MD5 | SHA1 | SHA256 | SHA512 } ; Default is SHA256. + + update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using md5) key k_prv hash md5) returning octet_length(text_rsa_sign) into rsa_sign_len_mg5; + update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using md5) signature text_rsa_sign key k_pub hash md5) returning text_rsa_vrfy into rsa_vrfy_md5; + + update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using sha1) key k_prv hash sha1) returning octet_length(text_rsa_sign) into rsa_sign_len_sha1; + update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using sha1) signature text_rsa_sign key k_pub hash sha1) returning text_rsa_vrfy into rsa_vrfy_sha1; + + update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using sha256) key k_prv hash sha256) returning octet_length(text_rsa_sign) into rsa_sign_len_sha256; + update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using sha256) signature text_rsa_sign key k_pub hash sha256) returning text_rsa_vrfy into rsa_vrfy_sha256; + + update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using sha512) key k_prv hash sha512) returning octet_length(text_rsa_sign) into rsa_sign_len_sha512; + update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using sha512) signature text_rsa_sign key k_pub hash sha512) returning text_rsa_vrfy into rsa_vrfy_sha512; + + --################################################# + + update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash md5) returning octet_length(text_encrypted) into encr_octet_len_md5; + update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash md5) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD') into decryption_result_md5; + ------------------------------------------------- + update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash sha1) returning octet_length(text_encrypted) into encr_octet_len_sha1; + update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash sha1) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD') into decryption_result_sha1; + ------------------------------------------------- + update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash sha256) returning octet_length(text_encrypted) into encr_octet_len_sha256; + update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash sha256) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD') into decryption_result_sha256; + ------------------------------------------------- + update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash sha512) returning octet_length(text_encrypted) into encr_octet_len_sha512; + update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash sha512) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD') into decryption_result_sha512; + ------------------------------------------------- + + rdb$set_context('USER_SESSION', 'SOURCE_TEXT', null); + + -- end + suspend; + + end + ^ + execute block returns(problem_text varchar(512) character set utf8, problem_octets_len smallint) as + begin + for + select problem_text, octet_length(problem_text) + from ( + select rdb$get_context('USER_SESSION', 'SOURCE_TEXT') as problem_text + from rdb$database + ) + where problem_text is not null + into problem_text, problem_octets_len + do + suspend; + end + ^ + set term ;^ + +""" + +act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) + +expected_stdout_1 = """ + RSA_SIGN_LEN_MG5 256 + RSA_VRFY_MD5 + + RSA_SIGN_LEN_SHA1 256 + RSA_VRFY_SHA1 + + RSA_SIGN_LEN_SHA256 256 + RSA_VRFY_SHA256 + + RSA_SIGN_LEN_SHA512 256 + RSA_VRFY_SHA512 + + ENCR_OCTET_LEN_MD5 256 + DECRYPTION_RESULT_MD5 OK. + + ENCR_OCTET_LEN_SHA1 256 + DECRYPTION_RESULT_SHA1 OK. + + ENCR_OCTET_LEN_SHA256 256 + DECRYPTION_RESULT_SHA256 OK. + + ENCR_OCTET_LEN_SHA512 256 + DECRYPTION_RESULT_SHA512 OK. +""" + +@pytest.mark.version('>=4.0,<5.0') +def test_1(act_1: Action): + act_1.expected_stdout = expected_stdout_1 + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout + +# version: 5.0 +# resources: None + +substitutions_2 = [] + +init_script_2 = """""" + +db_2 = db_factory(sql_dialect=3, init=init_script_2) + +test_script_2 = """ + set list on; + recreate table rsa( + text_unencrypted varchar(256) + ,k_prv varbinary(16384) + ,k_pub varbinary(8192) + ,text_rsa_sign varchar(8192) + ,text_rsa_vrfy boolean + ,text_encrypted varchar(256) + ,text_decrypted varchar(256) + ); + insert into rsa default values; + + set term ^; + execute block returns( + rsa_sign_len_mg5 smallint + ,rsa_vrfy_md5 boolean + ,rsa_sign_len_sha1 smallint + ,rsa_vrfy_sha1 boolean + ,rsa_sign_len_sha256 smallint + ,rsa_vrfy_sha256 boolean + ,rsa_sign_len_sha512 smallint + ,rsa_vrfy_sha512 boolean + ,encr_octet_len_md5 smallint + ,decryption_result_md5 varchar(3) + ,encr_octet_len_sha1 smallint + ,decryption_result_sha1 varchar(3) + ,encr_octet_len_sha256 smallint + ,decryption_result_sha256 varchar(3) + ,encr_octet_len_sha512 smallint + ,decryption_result_sha512 varchar(3) + ) + as + declare lorem varchar(8190) character set utf8; + declare p_beg smallint; + declare n_for smallint; + begin + lorem = 'ΛορεμιπσθμδολορσιταμετvισιδνοvθμαλτερθμcομπλεcτιτθρτεναμηομεροβλανδιτμελανqθοδμοδοδολορεμΑτσεδγραεcιδελεcτθσcθειθσπροπριαεμολεστιαεθσθανηισqθοδσιποστθλαντπερτιναcιαΛαθδεμεqθιδεματηισΔθοπορροτολλιτπλατονεμαναλιιπαθλοcονστιτθαμqθοανΠρορεπθδιαρεcονσεqθθντθρεξνεcεθθνθμσολεαττεvελσθασcασελεγιμθσΝεεvερτιτθραππελλαντθρvισθτναμνοστερμολλισvολθπταριαΑγαμδολορεφφιcιαντθραννεcΑφφερτσιγνιφερθμqθεπριεισθασλθδθσδεσερθισσειδπερΠροβοπονδερθμετvιξετσιτστετφαcερρεφερρεντθρΕιαεqθετολλιτπροπριαεμεαvιξεθσθασδισπθτανδοΛαβορεφαcετεvολθπτατθμαδcθμηαβεοvιρισδολορετμελΑγαμλιβερβλανδιτηασαδvιμcθαεqθειντερεσσετVισεξvενιαμομνεσqθεινvενιρεCασεcονσετετθρvισατεvερτιφορενσιβθσσθσcιπιαντθρεξηισΕτπερτολλιτεριπθιτσαπιεντεμvελνεqθαεqθεποστθλανταεqθεηονεστατισεοσανΣονετεριπθιτεθvισλεγερεαδολεσcενσετναμCιβοαβηορρεαντινμεαναμηαβεοvιταειναδηισμαλισριδενσcορρθμπιτΝεcαδπριμισμενανδριμαγναqθαεστιοεξπλιcαριεθθσθνεqθοcομμοδοαετερνοαργθμεντθμΣθμοvιτθπερατοριβθσεστθτΜειτεvενιαμσεμπερΠαθλοαλβθcιθσvισατCθεαμφερριδοcτθσοφφενδιτεστατνατθμμθτατΕαμελτριτανιελαβοραρετλθδθσσcριπτορεμπερετΣεαειανιμαλcοντεντιονεσομιτταμλθcιλιθσπερνεΑπεριριπερσιθσαλτερθμθσθνονεcαπειριανοπορτερενεΑδμειμεισφαcερπθταντvιμcασεμοvεττραcτατοσεξΑππετερεμανδαμθσνοηιστιμεαμqθαεqθεδελενιτετεστvιρτθτετεμποριβθσδθοτεΜοδοινιμιcθσεισεαεοσιναφφερττεμπορcομμοδοΕνιμqθοτειρμοδcθπεραδολεσcενσπηιλοσοπηιαvιξεαΘτιναμνοστρθδvιστεπροειφαλλιλατινερεφορμιδανσΕθμαθδιαμεξπετενδισλιβεραvισσεεαεξοcθρρερετπροδεσσετσιτΝαμεξcοντεντιονεσδετερρθισσετvιστεδθισαθδιρεΕξμαλορθμcονσεqθατμνεσαρcηθμσεδΑδπροομνεσqθεcονστιτθαμλιβεραvισσεεξνθλλαμδοcτθσινδοcτθμεαμΕιηασμολλισομιτταμνεcδιcθντλθcιλιθσανταντασποσσιμιθvαρετεοσετΕιεραντμαιεστατισνεcεθμμοδθσαλιqθανδοεαVιμεθισμοδτορqθατοσδεσερθισσεειεαπροπονδερθμπερφεcτοQθοvιρισcαθσαετιβιqθετεσεδδιcοεσσελαορεετνοΑσσθμλθδθσβλανδιτεοσεξΦαcιλισοφφενδιτεαμεξατσιτπορροφαcιλισΗασπερφεcτοσεντεντιαεαccομμοδαρενοΗαβεοαλβθcιθσcονcλθσιονεμqθεατεοσμελαττατιονcονσετετθρjθστοαδιπισcιτεεοσΔιcαμρατιονιβθσσιγνιφερθμqθεεθμνομεισολεταδμοδθμνοφαcερταcιματεσεξπετενδισηισαδΗισcθπρομπτατορqθατοσvιξαδμελιορεπερcιπιτΕqθιδεμταcιματεσεθριπιδισιδπερμελατιλλθμεqθιδεμαccθμσανΕιαπεριαμινcορρθπτενεcΕιδθοδελιcαταρεφορμιδανσσολθμεθισμοδεθπερΔθορεβθμαλιqθιπδενιqθεθτcθqθιεσσεελιτδεσερθντΑμετσcριπταπαρτιενδονεvιμνοθσθιλλθμπορροπθτεντιδλαβορεσαλιενθμπροΑφφερτατομορθμcορρθμπιτναμαδαλιqθαμινερμισμεντιτθμεαμ' + || 'ЛоремипсумдолорситаметехяуилибердоцендицоррумпитЕраталиенумносеаЕхтотатациматесирацундиаеумехерцицонсецтетуеридцумПробоатяуиделицатиссимиехяуосумосусципиантурхасехПродебитисмандамусеунеприиллудсонетрегионеТееамлегеремандамусПереталиатинцидунтНецибодицамлаудемусуанприталенуллаДолоресвертеремсплендидецумеуадмелопортересигниферумяуеАнвитаеорнатусопортеатеосадвисвениаминермисделенитиВихсуавитатенеглегентуртееумелталеиллуммалуиссетЕросмелиорехисеуПутентпосидониумтенецДицантделенитменандриутмеаадяуолатинеаргументумнемеиалтерумерудитицомплецтитурЦибототавидитеумцуменандрилаборамусеунамадагамграецохисЕхеумассумяуаестиоатеосцибомоллисТемелнолуиссеинтеллегатделицатиссимиНолаудемцонституамаппеллантурцумнецяуотграеценеЕпицуреипхаедруместехнулладебетеумутЕтхисенимаугуемуциуссцрипсеритвелидЕтвимунумволуптариасеабрутеинтеллегамцуМеатеелеифендмнесарчумяуисверотемпорибусусуанидперуллуминтеллегатХомероевертитурпосидониумиусетеимелвероаеяуеФацерпосситпробатусеинецСиттецонгуецонцептамседфацермоллислабитуринХабеосусципиантуридхасцасемаиоруминцорруптеехеосеосомнисвивендумаппеллантуранЕхмеаплацератплатонемцонцлусионемяуеПосситперицулаеамеаетдуофацерволуптариаяуаерендумДесеруиссесцриптореминяуиеивимпромптафеугиатхисеуетиамимпедитНовисопортеатволуптарианеглегентурдицампоссимеаяуиусуидаппетереинцидеринтцонцлудатуряуеДицоцорпорамеицуПервениамсаперетнеяуиеадолорессапиентемалияуандоансимуларгументумперВереарнонуместоряуатосмелетвисрецтеяуемолестиаецонсеяуунтуреиеоснеоффендитволуптуаратионибусСеаноессесаперетреформидансвимяуидамратионибусвитуператаеисединвидевидитДесерунтрепудиаределицатиссимицувиханперсиусерипуитцотидиеяуеприЯуимагнаиуваретфацилисцуинмоветириуреатоморумеамВисимпетусрецтеяуеевертитуреабрутериденсдолореснамнеНееффициантурделицатиссимияуоМеиеааеяуепосситнемореНовимяуаслудусаццусатаеиеумвертеремлуцилиусперсеяуерисНевелунумвероелояуентиамехпроеррорцонститутоантиопамеррорибусяуитеЕосепицуриоцурреретулламцорперноЕтомниуминструцтиорнамСитинутинамевертинихилдесеруиссееиперСедтеверосимулдигниссимпетентиумвулпутатенамеуНостроалияуамеуцумАлиипондерумхонестатисеапроутвихевертииндоцтумсапиентеметсеаодиоцаусаеПротеимпердиетсигниферумяуеЕамеиаццумсаномиттантурДуиснобиспертинахнецанцуцумалиенумпатриояуеадолесценсдебетнумяуамехприПаулоаперирилаореетяуиинмелнофастидиипетентиумЗриланциллаесадипсцингин'; + + -- while (1=1) do + -- begin + p_beg = cast( 1 + rand() * ( char_length(lorem) - 63 ) as smallint); + n_for = 63; -- cast( 8 + rand() * (63-8) as smallint); + update rsa set text_unencrypted = substring(:lorem from :p_beg for :n_for); + + rdb$set_context('USER_SESSION', 'SOURCE_TEXT', (select text_unencrypted from rsa rows 1)); + + update rsa set k_prv = rsa_private(256); + update rsa set k_pub = rsa_public(k_prv); + -- update rsa set text_decrypted = rsa_decrypt(cast(text_encrypted as varbinary(32760)) key k_prv ); + + ------------------------------------------------- + -- RSA_SIGN_HASH ( KEY [HASH ] [SALT_LENGTH ] ) + -- RSA_VERIFY_HASH ( SIGNATURE KEY [HASH ] [SALT_LENGTH ] ) + -- RSA_ENCRYPT ( KEY [LPARAM ] [HASH ]) + -- ::= { MD5 | SHA1 | SHA256 | SHA512 } ; Default is SHA256. + + update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using md5) key k_prv hash md5) returning octet_length(text_rsa_sign) into rsa_sign_len_mg5; + update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using md5) signature text_rsa_sign key k_pub hash md5) returning text_rsa_vrfy into rsa_vrfy_md5; + + update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using sha1) key k_prv hash sha1) returning octet_length(text_rsa_sign) into rsa_sign_len_sha1; + update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using sha1) signature text_rsa_sign key k_pub hash sha1) returning text_rsa_vrfy into rsa_vrfy_sha1; + + update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using sha256) key k_prv hash sha256) returning octet_length(text_rsa_sign) into rsa_sign_len_sha256; + update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using sha256) signature text_rsa_sign key k_pub hash sha256) returning text_rsa_vrfy into rsa_vrfy_sha256; + + update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using sha512) key k_prv hash sha512) returning octet_length(text_rsa_sign) into rsa_sign_len_sha512; + update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using sha512) signature text_rsa_sign key k_pub hash sha512) returning text_rsa_vrfy into rsa_vrfy_sha512; + + --################################################# + + update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash md5) returning octet_length(text_encrypted) into encr_octet_len_md5; + update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash md5) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD') into decryption_result_md5; + ------------------------------------------------- + update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash sha1) returning octet_length(text_encrypted) into encr_octet_len_sha1; + update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash sha1) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD') into decryption_result_sha1; + ------------------------------------------------- + update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash sha256) returning octet_length(text_encrypted) into encr_octet_len_sha256; + update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash sha256) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD') into decryption_result_sha256; + ------------------------------------------------- + update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash sha512) returning octet_length(text_encrypted) into encr_octet_len_sha512; + update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash sha512) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD') into decryption_result_sha512; + ------------------------------------------------- + + rdb$set_context('USER_SESSION', 'SOURCE_TEXT', null); + + -- end + suspend; + + end + ^ + execute block returns(problem_text varchar(512) character set utf8, problem_octets_len smallint) as + begin + for + select problem_text, octet_length(problem_text) + from ( + select rdb$get_context('USER_SESSION', 'SOURCE_TEXT') as problem_text + from rdb$database + ) + where problem_text is not null + into problem_text, problem_octets_len + do + suspend; + end + ^ + set term ;^ + +""" + +act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) + +expected_stdout_2 = """ + RSA_SIGN_LEN_MG5 256 + RSA_VRFY_MD5 + + RSA_SIGN_LEN_SHA1 256 + RSA_VRFY_SHA1 + + RSA_SIGN_LEN_SHA256 256 + RSA_VRFY_SHA256 + + RSA_SIGN_LEN_SHA512 256 + RSA_VRFY_SHA512 + + ENCR_OCTET_LEN_MD5 256 + DECRYPTION_RESULT_MD5 OK. + + ENCR_OCTET_LEN_SHA1 256 + DECRYPTION_RESULT_SHA1 OK. + + ENCR_OCTET_LEN_SHA256 256 + DECRYPTION_RESULT_SHA256 OK. + + ENCR_OCTET_LEN_SHA512 256 + DECRYPTION_RESULT_SHA512 OK. +""" + +@pytest.mark.version('>=5.0') +def test_2(act_2: Action): + act_2.expected_stdout = expected_stdout_2 + act_2.execute() + assert act_2.clean_stdout == act_2.clean_expected_stdout + diff --git a/tests/functional/intfunc/encryption/test_rsa_family_pkcs_1_5.py b/tests/functional/intfunc/encryption/test_rsa_family_pkcs_1_5.py new file mode 100644 index 00000000..c97ead0e --- /dev/null +++ b/tests/functional/intfunc/encryption/test_rsa_family_pkcs_1_5.py @@ -0,0 +1,173 @@ +#coding:utf-8 +# +# id: functional.intfunc.encryption.rsa_family_pkcs_1_5 +# title: RSA-family function, attitional test: verify ability to use PKCS_1_5 keyword +# decription: +# See ticket: https://github.com/FirebirdSQL/firebird/issues/6929 +# Checked on 5.0.0.169. +# +# tracker_id: +# min_versions: ['5.0'] +# versions: 5.0 +# qmid: None + +import pytest +from firebird.qa import db_factory, isql_act, Action + +# version: 5.0 +# resources: None + +substitutions_1 = [] + +init_script_1 = """""" + +db_1 = db_factory(sql_dialect=3, init=init_script_1) + +test_script_1 = """ + set list on; + recreate table rsa( + text_unencrypted varchar(256) + ,k_prv varbinary(16384) + ,k_pub varbinary(8192) + ,text_rsa_sign varchar(8192) + ,text_rsa_vrfy boolean + ,text_encrypted varchar(256) + ,text_decrypted varchar(256) + ); + insert into rsa default values; + + set term ^; + execute block returns( + rsa_sign_len_mg5 smallint + ,rsa_vrfy_md5 boolean + ,rsa_sign_len_sha1 smallint + ,rsa_vrfy_sha1 boolean + ,rsa_sign_len_sha256 smallint + ,rsa_vrfy_sha256 boolean + ,rsa_sign_len_sha512 smallint + ,rsa_vrfy_sha512 boolean + ,encr_octet_len_md5 smallint + ,decryption_result_md5 varchar(3) + ,encr_octet_len_sha1 smallint + ,decryption_result_sha1 varchar(3) + ,encr_octet_len_sha256 smallint + ,decryption_result_sha256 varchar(3) + ,encr_octet_len_sha512 smallint + ,decryption_result_sha512 varchar(3) + ) + as + declare lorem varchar(8190) character set utf8; + declare p_beg smallint; + declare n_for smallint; + begin + lorem = 'ΛορεμιπσθμδολορσιταμετvισιδνοvθμαλτερθμcομπλεcτιτθρτεναμηομεροβλανδιτμελανqθοδμοδοδολορεμΑτσεδγραεcιδελεcτθσcθειθσπροπριαεμολεστιαεθσθανηισqθοδσιποστθλαντπερτιναcιαΛαθδεμεqθιδεματηισΔθοπορροτολλιτπλατονεμαναλιιπαθλοcονστιτθαμqθοανΠρορεπθδιαρεcονσεqθθντθρεξνεcεθθνθμσολεαττεvελσθασcασελεγιμθσΝεεvερτιτθραππελλαντθρvισθτναμνοστερμολλισvολθπταριαΑγαμδολορεφφιcιαντθραννεcΑφφερτσιγνιφερθμqθεπριεισθασλθδθσδεσερθισσειδπερΠροβοπονδερθμετvιξετσιτστετφαcερρεφερρεντθρΕιαεqθετολλιτπροπριαεμεαvιξεθσθασδισπθτανδοΛαβορεφαcετεvολθπτατθμαδcθμηαβεοvιρισδολορετμελΑγαμλιβερβλανδιτηασαδvιμcθαεqθειντερεσσετVισεξvενιαμομνεσqθεινvενιρεCασεcονσετετθρvισατεvερτιφορενσιβθσσθσcιπιαντθρεξηισΕτπερτολλιτεριπθιτσαπιεντεμvελνεqθαεqθεποστθλανταεqθεηονεστατισεοσανΣονετεριπθιτεθvισλεγερεαδολεσcενσετναμCιβοαβηορρεαντινμεαναμηαβεοvιταειναδηισμαλισριδενσcορρθμπιτΝεcαδπριμισμενανδριμαγναqθαεστιοεξπλιcαριεθθσθνεqθοcομμοδοαετερνοαργθμεντθμΣθμοvιτθπερατοριβθσεστθτΜειτεvενιαμσεμπερΠαθλοαλβθcιθσvισατCθεαμφερριδοcτθσοφφενδιτεστατνατθμμθτατΕαμελτριτανιελαβοραρετλθδθσσcριπτορεμπερετΣεαειανιμαλcοντεντιονεσομιτταμλθcιλιθσπερνεΑπεριριπερσιθσαλτερθμθσθνονεcαπειριανοπορτερενεΑδμειμεισφαcερπθταντvιμcασεμοvεττραcτατοσεξΑππετερεμανδαμθσνοηιστιμεαμqθαεqθεδελενιτετεστvιρτθτετεμποριβθσδθοτεΜοδοινιμιcθσεισεαεοσιναφφερττεμπορcομμοδοΕνιμqθοτειρμοδcθπεραδολεσcενσπηιλοσοπηιαvιξεαΘτιναμνοστρθδvιστεπροειφαλλιλατινερεφορμιδανσΕθμαθδιαμεξπετενδισλιβεραvισσεεαεξοcθρρερετπροδεσσετσιτΝαμεξcοντεντιονεσδετερρθισσετvιστεδθισαθδιρεΕξμαλορθμcονσεqθατμνεσαρcηθμσεδΑδπροομνεσqθεcονστιτθαμλιβεραvισσεεξνθλλαμδοcτθσινδοcτθμεαμΕιηασμολλισομιτταμνεcδιcθντλθcιλιθσανταντασποσσιμιθvαρετεοσετΕιεραντμαιεστατισνεcεθμμοδθσαλιqθανδοεαVιμεθισμοδτορqθατοσδεσερθισσεειεαπροπονδερθμπερφεcτοQθοvιρισcαθσαετιβιqθετεσεδδιcοεσσελαορεετνοΑσσθμλθδθσβλανδιτεοσεξΦαcιλισοφφενδιτεαμεξατσιτπορροφαcιλισΗασπερφεcτοσεντεντιαεαccομμοδαρενοΗαβεοαλβθcιθσcονcλθσιονεμqθεατεοσμελαττατιονcονσετετθρjθστοαδιπισcιτεεοσΔιcαμρατιονιβθσσιγνιφερθμqθεεθμνομεισολεταδμοδθμνοφαcερταcιματεσεξπετενδισηισαδΗισcθπρομπτατορqθατοσvιξαδμελιορεπερcιπιτΕqθιδεμταcιματεσεθριπιδισιδπερμελατιλλθμεqθιδεμαccθμσανΕιαπεριαμινcορρθπτενεcΕιδθοδελιcαταρεφορμιδανσσολθμεθισμοδεθπερΔθορεβθμαλιqθιπδενιqθεθτcθqθιεσσεελιτδεσερθντΑμετσcριπταπαρτιενδονεvιμνοθσθιλλθμπορροπθτεντιδλαβορεσαλιενθμπροΑφφερτατομορθμcορρθμπιτναμαδαλιqθαμινερμισμεντιτθμεαμ' + || 'ЛоремипсумдолорситаметехяуилибердоцендицоррумпитЕраталиенумносеаЕхтотатациматесирацундиаеумехерцицонсецтетуеридцумПробоатяуиделицатиссимиехяуосумосусципиантурхасехПродебитисмандамусеунеприиллудсонетрегионеТееамлегеремандамусПереталиатинцидунтНецибодицамлаудемусуанприталенуллаДолоресвертеремсплендидецумеуадмелопортересигниферумяуеАнвитаеорнатусопортеатеосадвисвениаминермисделенитиВихсуавитатенеглегентуртееумелталеиллуммалуиссетЕросмелиорехисеуПутентпосидониумтенецДицантделенитменандриутмеаадяуолатинеаргументумнемеиалтерумерудитицомплецтитурЦибототавидитеумцуменандрилаборамусеунамадагамграецохисЕхеумассумяуаестиоатеосцибомоллисТемелнолуиссеинтеллегатделицатиссимиНолаудемцонституамаппеллантурцумнецяуотграеценеЕпицуреипхаедруместехнулладебетеумутЕтхисенимаугуемуциуссцрипсеритвелидЕтвимунумволуптариасеабрутеинтеллегамцуМеатеелеифендмнесарчумяуисверотемпорибусусуанидперуллуминтеллегатХомероевертитурпосидониумиусетеимелвероаеяуеФацерпосситпробатусеинецСиттецонгуецонцептамседфацермоллислабитуринХабеосусципиантуридхасцасемаиоруминцорруптеехеосеосомнисвивендумаппеллантуранЕхмеаплацератплатонемцонцлусионемяуеПосситперицулаеамеаетдуофацерволуптариаяуаерендумДесеруиссесцриптореминяуиеивимпромптафеугиатхисеуетиамимпедитНовисопортеатволуптарианеглегентурдицампоссимеаяуиусуидаппетереинцидеринтцонцлудатуряуеДицоцорпорамеицуПервениамсаперетнеяуиеадолорессапиентемалияуандоансимуларгументумперВереарнонуместоряуатосмелетвисрецтеяуемолестиаецонсеяуунтуреиеоснеоффендитволуптуаратионибусСеаноессесаперетреформидансвимяуидамратионибусвитуператаеисединвидевидитДесерунтрепудиаределицатиссимицувиханперсиусерипуитцотидиеяуеприЯуимагнаиуваретфацилисцуинмоветириуреатоморумеамВисимпетусрецтеяуеевертитуреабрутериденсдолореснамнеНееффициантурделицатиссимияуоМеиеааеяуепосситнемореНовимяуаслудусаццусатаеиеумвертеремлуцилиусперсеяуерисНевелунумвероелояуентиамехпроеррорцонститутоантиопамеррорибусяуитеЕосепицуриоцурреретулламцорперноЕтомниуминструцтиорнамСитинутинамевертинихилдесеруиссееиперСедтеверосимулдигниссимпетентиумвулпутатенамеуНостроалияуамеуцумАлиипондерумхонестатисеапроутвихевертииндоцтумсапиентеметсеаодиоцаусаеПротеимпердиетсигниферумяуеЕамеиаццумсаномиттантурДуиснобиспертинахнецанцуцумалиенумпатриояуеадолесценсдебетнумяуамехприПаулоаперирилаореетяуиинмелнофастидиипетентиумЗриланциллаесадипсцингин'; + + p_beg = cast( 1 + rand() * ( char_length(lorem) - 63 ) as smallint); + n_for = 63; -- cast( 8 + rand() * (63-8) as smallint); + update rsa set text_unencrypted = substring(:lorem from :p_beg for :n_for); + + rdb$set_context('USER_SESSION', 'SOURCE_TEXT', (select text_unencrypted from rsa rows 1)); + + update rsa set k_prv = rsa_private(256); + update rsa set k_pub = rsa_public(k_prv); + -- update rsa set text_decrypted = rsa_decrypt(cast(text_encrypted as varbinary(32760)) key k_prv ); + + ------------------------------------------------- + + -- RSA_SIGN_HASH ( KEY [HASH ] [SALT_LENGTH ] ) + -- RSA_VERIFY_HASH ( SIGNATURE KEY [HASH ] [SALT_LENGTH ] ) + -- RSA_ENCRYPT ( KEY [LPARAM ] [HASH ]) + + -- After fixed gh-6929 ("Add support of PKCS v.1.5 padding to RSA functions ... "): + -- RSA_SIGN_HASH ( KEY [HASH ] [SALT_LENGTH ] [PKCS_1_5] ) + -- RSA_VERIFY_HASH ( SIGNATURE KEY [HASH ] [SALT_LENGTH ] [PKCS_1_5] ) + -- RSA_ENCRYPT ( KEY [LPARAM ] [HASH ] [PKCS_1_5] ) + + -- ::= { MD5 | SHA1 | SHA256 | SHA512 } ; Default is SHA256. + + execute statement 'update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using md5) key k_prv hash md5 PKCS_1_5) returning octet_length(text_rsa_sign)' into rsa_sign_len_mg5; + execute statement 'update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using md5) signature text_rsa_sign key k_pub hash md5 PKCS_1_5) returning text_rsa_vrfy' into rsa_vrfy_md5; + + execute statement 'update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using sha1) key k_prv hash sha1 PKCS_1_5) returning octet_length(text_rsa_sign)' into rsa_sign_len_sha1; + execute statement 'update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using sha1) signature text_rsa_sign key k_pub hash sha1 PKCS_1_5) returning text_rsa_vrfy' into rsa_vrfy_sha1; + + execute statement 'update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using sha256) key k_prv hash sha256 PKCS_1_5) returning octet_length(text_rsa_sign)' into rsa_sign_len_sha256; + execute statement 'update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using sha256) signature text_rsa_sign key k_pub hash sha256 PKCS_1_5) returning text_rsa_vrfy' into rsa_vrfy_sha256; + + execute statement 'update rsa set text_rsa_sign = rsa_sign_hash( crypt_hash(text_unencrypted using sha512) key k_prv hash sha512 PKCS_1_5) returning octet_length(text_rsa_sign)' into rsa_sign_len_sha512; + execute statement 'update rsa set text_rsa_vrfy = rsa_verify_hash( crypt_hash(text_unencrypted using sha512) signature text_rsa_sign key k_pub hash sha512 PKCS_1_5) returning text_rsa_vrfy' into rsa_vrfy_sha512; + + --################################################# + + execute statement q'{update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash md5 PKCS_1_5) returning octet_length(text_encrypted)}' into encr_octet_len_md5; + execute statement q'{update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash md5 PKCS_1_5) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD')}' into decryption_result_md5; + ------------------------------------------------- + execute statement q'{update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash sha1 PKCS_1_5) returning octet_length(text_encrypted)}' into encr_octet_len_sha1; + execute statement q'{update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash sha1 PKCS_1_5) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD')}' into decryption_result_sha1; + ------------------------------------------------- + execute statement q'{update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash sha256 PKCS_1_5) returning octet_length(text_encrypted)}' into encr_octet_len_sha256; + execute statement q'{update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash sha256 PKCS_1_5) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD')}' into decryption_result_sha256; + ------------------------------------------------- + execute statement q'{update rsa set text_encrypted = rsa_encrypt(text_unencrypted key k_pub hash sha512 PKCS_1_5) returning octet_length(text_encrypted)}' into encr_octet_len_sha512; + execute statement q'{update rsa set text_decrypted = rsa_decrypt(text_encrypted key k_prv hash sha512 PKCS_1_5) returning iif(text_unencrypted = text_decrypted, 'OK.','BAD')}' into decryption_result_sha512; + ------------------------------------------------- + + rdb$set_context('USER_SESSION', 'SOURCE_TEXT', null); + + suspend; + + end + ^ + execute block returns(problem_text varchar(512) character set utf8, problem_octets_len smallint) as + begin + for + select problem_text, octet_length(problem_text) + from ( + select rdb$get_context('USER_SESSION', 'SOURCE_TEXT') as problem_text + from rdb$database + ) + where problem_text is not null + into problem_text, problem_octets_len + do + suspend; + end + ^ + set term ;^ + +""" + +act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) + +expected_stdout_1 = """ + RSA_SIGN_LEN_MG5 256 + RSA_VRFY_MD5 + + RSA_SIGN_LEN_SHA1 256 + RSA_VRFY_SHA1 + + RSA_SIGN_LEN_SHA256 256 + RSA_VRFY_SHA256 + + RSA_SIGN_LEN_SHA512 256 + RSA_VRFY_SHA512 + + ENCR_OCTET_LEN_MD5 256 + DECRYPTION_RESULT_MD5 OK. + + ENCR_OCTET_LEN_SHA1 256 + DECRYPTION_RESULT_SHA1 OK. + + ENCR_OCTET_LEN_SHA256 256 + DECRYPTION_RESULT_SHA256 OK. + + ENCR_OCTET_LEN_SHA512 256 + DECRYPTION_RESULT_SHA512 OK. +""" + +@pytest.mark.version('>=5.0') +def test_1(act_1: Action): + act_1.expected_stdout = expected_stdout_1 + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout + diff --git a/tests/functional/intfunc/list/test_01.py b/tests/functional/intfunc/list/test_01.py index e6ac83fd..94d35355 100644 --- a/tests/functional/intfunc/list/test_01.py +++ b/tests/functional/intfunc/list/test_01.py @@ -91,7 +91,7 @@ test_script_1 = """ from test x where x.rel_name starting with upper('rdb$') group by 1; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -219,11 +219,11 @@ expected_stdout_1 = """ REL_NAME RDB$VIEW_RELATIONS list_blob_id 0:1f RDB$INDEX_33,RDB$INDEX_34 - """ +""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/list/test_02.py b/tests/functional/intfunc/list/test_02.py index 52866ab2..a05b2325 100644 --- a/tests/functional/intfunc/list/test_02.py +++ b/tests/functional/intfunc/list/test_02.py @@ -91,7 +91,7 @@ test_script_1 = """ from test x where x.rel_name starting with upper('rdb$') group by 1; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -219,11 +219,11 @@ expected_stdout_1 = """ REL_NAME RDB$VIEW_RELATIONS list_blob_id 0:1f RDB$INDEX_33:RDB$INDEX_34 - """ +""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/list/test_03.py b/tests/functional/intfunc/list/test_03.py index c549f782..c6804e84 100644 --- a/tests/functional/intfunc/list/test_03.py +++ b/tests/functional/intfunc/list/test_03.py @@ -9,7 +9,7 @@ # qmid: functional.intfunc.list.list_03 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 2.1 # resources: None @@ -27,16 +27,14 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # printData(c) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """RDB$SYSTEM_FLAG LIST --------------- ---- -1 SYSDBA -""" +1 SYSDBA""" @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/intfunc/math/test_abs_01.py b/tests/functional/intfunc/math/test_abs_01.py index 763fefee..dc375a5f 100644 --- a/tests/functional/intfunc/math/test_abs_01.py +++ b/tests/functional/intfunc/math/test_abs_01.py @@ -26,12 +26,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ABS ===================== - 1 -""" +1""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_acos_01.py b/tests/functional/intfunc/math/test_acos_01.py index ce374841..6fdcab4b 100644 --- a/tests/functional/intfunc/math/test_acos_01.py +++ b/tests/functional/intfunc/math/test_acos_01.py @@ -30,12 +30,11 @@ expected_stdout_1 = """ CAST ===================== 0.000000000000000 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_asin_01.py b/tests/functional/intfunc/math/test_asin_01.py index 69c71de8..f7b77892 100644 --- a/tests/functional/intfunc/math/test_asin_01.py +++ b/tests/functional/intfunc/math/test_asin_01.py @@ -28,12 +28,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ASIN ======================= - 1.570796326794897 -""" +1.570796326794897""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_atan2_01.py b/tests/functional/intfunc/math/test_atan2_01.py index ca559336..69134ba1 100644 --- a/tests/functional/intfunc/math/test_atan2_01.py +++ b/tests/functional/intfunc/math/test_atan2_01.py @@ -29,12 +29,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ATAN2 ======================= 0.7853981633974483 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_atan_01.py b/tests/functional/intfunc/math/test_atan_01.py index c089cc13..ab157e92 100644 --- a/tests/functional/intfunc/math/test_atan_01.py +++ b/tests/functional/intfunc/math/test_atan_01.py @@ -29,12 +29,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ATAN ======================= 0.7853981633974483 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_ceil_01.py b/tests/functional/intfunc/math/test_ceil_01.py index 963f5448..96e8813a 100644 --- a/tests/functional/intfunc/math/test_ceil_01.py +++ b/tests/functional/intfunc/math/test_ceil_01.py @@ -23,7 +23,6 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select CEIL( 2.1) from rdb$database; select CEIL( -2.1) from rdb$database; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -37,12 +36,11 @@ expected_stdout_1 = """ CEIL - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_cos_01.py b/tests/functional/intfunc/math/test_cos_01.py index 2cbf4395..3b99dcb3 100644 --- a/tests/functional/intfunc/math/test_cos_01.py +++ b/tests/functional/intfunc/math/test_cos_01.py @@ -23,7 +23,6 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select COS( 14) from rdb$database; select COS( 0) from rdb$database; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -37,12 +36,11 @@ expected_stdout_1 = """ COS - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_cosh_01.py b/tests/functional/intfunc/math/test_cosh_01.py index 08ab9dc0..a69f28cb 100644 --- a/tests/functional/intfunc/math/test_cosh_01.py +++ b/tests/functional/intfunc/math/test_cosh_01.py @@ -23,7 +23,6 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select COSH( 1) from rdb$database; select COSH( 0) from rdb$database; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -39,12 +38,11 @@ expected_stdout_1 = """ COSH - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_cot_01.py b/tests/functional/intfunc/math/test_cot_01.py index 0de2d47d..4dd57e7d 100644 --- a/tests/functional/intfunc/math/test_cot_01.py +++ b/tests/functional/intfunc/math/test_cot_01.py @@ -28,12 +28,11 @@ expected_stdout_1 = """ CAST ===================== 0.642092615934331 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_exp_01.py b/tests/functional/intfunc/math/test_exp_01.py index f9f1b323..c1be8395 100644 --- a/tests/functional/intfunc/math/test_exp_01.py +++ b/tests/functional/intfunc/math/test_exp_01.py @@ -21,18 +21,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ -select EXP( 3) from rdb$database; -""" +select EXP( 3) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ EXP ======================= - 20.08553692318767""" +20.08553692318767""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_floor_01.py b/tests/functional/intfunc/math/test_floor_01.py index 74eeaaec..5b4ac42c 100644 --- a/tests/functional/intfunc/math/test_floor_01.py +++ b/tests/functional/intfunc/math/test_floor_01.py @@ -21,7 +21,7 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select FLOOR(2.1) from rdb$database; - select FLOOR(-4.4) from rdb$database;""" +select FLOOR(-4.4) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -32,11 +32,11 @@ expected_stdout_1 = """ FLOOR FLOOR ===================== - -5""" +-5""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_ln_01.py b/tests/functional/intfunc/math/test_ln_01.py index 315aaec0..7349e68d 100644 --- a/tests/functional/intfunc/math/test_ln_01.py +++ b/tests/functional/intfunc/math/test_ln_01.py @@ -24,18 +24,17 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ select ln(5) from rdb$database; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ LN ======================= - 1.609437912434100""" +1.609437912434100""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_log10_01.py b/tests/functional/intfunc/math/test_log10_01.py index 4dc394a3..593ede02 100644 --- a/tests/functional/intfunc/math/test_log10_01.py +++ b/tests/functional/intfunc/math/test_log10_01.py @@ -22,17 +22,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select log10(6) from rdb$database;""" +test_script_1 = """select log10(6) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ LOG10 ======================= - 0.7781512503836436""" +0.7781512503836436""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_log_01.py b/tests/functional/intfunc/math/test_log_01.py index 9d474ca1..51f91f7c 100644 --- a/tests/functional/intfunc/math/test_log_01.py +++ b/tests/functional/intfunc/math/test_log_01.py @@ -29,11 +29,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ LOG ======================= - 1.285097208938469""" +1.285097208938469""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_maxvalue_01.py b/tests/functional/intfunc/math/test_maxvalue_01.py index 538c80d7..7c1e7bec 100644 --- a/tests/functional/intfunc/math/test_maxvalue_01.py +++ b/tests/functional/intfunc/math/test_maxvalue_01.py @@ -23,19 +23,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ select maxvalue(54, 87, 10) from rdb$database; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ MAXVALUE ============ - 87 -""" +87""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_minvalue_01.py b/tests/functional/intfunc/math/test_minvalue_01.py index dd0a0a22..bf0107b1 100644 --- a/tests/functional/intfunc/math/test_minvalue_01.py +++ b/tests/functional/intfunc/math/test_minvalue_01.py @@ -24,18 +24,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select minvalue(9, 7, 10) from rdb$database; -""" +test_script_1 = """select minvalue(9, 7, 10) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ MINVALUE ============ - 7""" +7""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_mod_01.py b/tests/functional/intfunc/math/test_mod_01.py index 9ac5fa69..08023157 100644 --- a/tests/functional/intfunc/math/test_mod_01.py +++ b/tests/functional/intfunc/math/test_mod_01.py @@ -23,18 +23,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select MOD(11,10) from rdb$database;""" +test_script_1 = """select MOD(11,10) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ MOD ============ - 1 -""" +1""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_pi_01.py b/tests/functional/intfunc/math/test_pi_01.py index dd5925d2..5d6eaa85 100644 --- a/tests/functional/intfunc/math/test_pi_01.py +++ b/tests/functional/intfunc/math/test_pi_01.py @@ -22,18 +22,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select PI() from rdb$database;""" +test_script_1 = """select PI() from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ PI ======================= - 3.141592653589793 -""" +3.141592653589793""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_power_01.py b/tests/functional/intfunc/math/test_power_01.py index 2fe47c24..96ac5c09 100644 --- a/tests/functional/intfunc/math/test_power_01.py +++ b/tests/functional/intfunc/math/test_power_01.py @@ -23,18 +23,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ select power(2, 3) from rdb$database; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ POWER ======================= - 8.000000000000000""" +8.000000000000000""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_rand_01.py b/tests/functional/intfunc/math/test_rand_01.py index bd4aaf7b..76af6e5e 100644 --- a/tests/functional/intfunc/math/test_rand_01.py +++ b/tests/functional/intfunc/math/test_rand_01.py @@ -57,12 +57,11 @@ expected_stdout_1 = """ COUNT 1 1 1 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_round_01.py b/tests/functional/intfunc/math/test_round_01.py index 64ba367e..35c795d3 100644 --- a/tests/functional/intfunc/math/test_round_01.py +++ b/tests/functional/intfunc/math/test_round_01.py @@ -24,17 +24,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select ROUND(5.7778, 3) from rdb$database;""" +test_script_1 = """select ROUND(5.7778, 3) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ROUND ===================== - 5.7780""" +5.7780""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_sign_01.py b/tests/functional/intfunc/math/test_sign_01.py index 3d7778d1..d72fcc1a 100644 --- a/tests/functional/intfunc/math/test_sign_01.py +++ b/tests/functional/intfunc/math/test_sign_01.py @@ -25,7 +25,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ select SIGN(-9) from rdb$database; select SIGN(8) from rdb$database; - select SIGN(0) from rdb$database;""" +select SIGN(0) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -41,11 +41,11 @@ expected_stdout_1 = """ SIGN SIGN ======= - 0""" +0""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_sin_01.py b/tests/functional/intfunc/math/test_sin_01.py index fdb717f5..1fd8bdc4 100644 --- a/tests/functional/intfunc/math/test_sin_01.py +++ b/tests/functional/intfunc/math/test_sin_01.py @@ -25,7 +25,7 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select CAST(SIN(12) AS DECIMAL(18,15)) from rdb$database;""" +test_script_1 = """select CAST(SIN(12) AS DECIMAL(18,15)) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -33,12 +33,11 @@ expected_stdout_1 = """ CAST ===================== -0.536572918000435 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_sinh_01.py b/tests/functional/intfunc/math/test_sinh_01.py index 70580339..63094dc2 100644 --- a/tests/functional/intfunc/math/test_sinh_01.py +++ b/tests/functional/intfunc/math/test_sinh_01.py @@ -25,17 +25,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select SINH(4) from rdb$database;""" +test_script_1 = """select SINH(4) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ SINH ======================= - 27.28991719712775""" +27.28991719712775""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_sqrt_01.py b/tests/functional/intfunc/math/test_sqrt_01.py index 5c45775b..d613cc77 100644 --- a/tests/functional/intfunc/math/test_sqrt_01.py +++ b/tests/functional/intfunc/math/test_sqrt_01.py @@ -23,17 +23,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select SQRT(4) from rdb$database;""" +test_script_1 = """select SQRT(4) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ SQRT ======================= - 2.000000000000000""" +2.000000000000000""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_tan_01.py b/tests/functional/intfunc/math/test_tan_01.py index 175ff075..682abdc4 100644 --- a/tests/functional/intfunc/math/test_tan_01.py +++ b/tests/functional/intfunc/math/test_tan_01.py @@ -23,17 +23,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select TAN(43) from rdb$database;""" +test_script_1 = """select TAN(43) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ TAN ======================= - -1.498387338855171""" +-1.498387338855171""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_tanh_01.py b/tests/functional/intfunc/math/test_tanh_01.py index a45f3afb..bb0b491d 100644 --- a/tests/functional/intfunc/math/test_tanh_01.py +++ b/tests/functional/intfunc/math/test_tanh_01.py @@ -24,18 +24,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select TANH(5) from rdb$database;""" +test_script_1 = """select TANH(5) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ TANH ======================= - 0.9999092042625951 -""" +0.9999092042625951""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/math/test_trunc_01.py b/tests/functional/intfunc/math/test_trunc_01.py index 7ddb51c3..3138cc13 100644 --- a/tests/functional/intfunc/math/test_trunc_01.py +++ b/tests/functional/intfunc/math/test_trunc_01.py @@ -25,7 +25,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select trunc(-2.8), trunc(2.8) from rdb$database; -- returns -2, 2 select trunc(987.65, 1), trunc(987.65, -1) - from rdb$database; -- returns 987.60, 980.00""" +from rdb$database; -- returns 987.60, 980.00""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -36,11 +36,11 @@ expected_stdout_1 = """ TRUNC TRUNC TRUNC TRUNC ===================== ===================== - 987.60 980.00""" +987.60 980.00""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/misc/test_decode_01.py b/tests/functional/intfunc/misc/test_decode_01.py index 7747063f..14f2af05 100644 --- a/tests/functional/intfunc/misc/test_decode_01.py +++ b/tests/functional/intfunc/misc/test_decode_01.py @@ -46,12 +46,11 @@ deux trois plus grand plus grand - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/misc/test_gen_uuid_01.py b/tests/functional/intfunc/misc/test_gen_uuid_01.py index 422eba80..7e9b38b3 100644 --- a/tests/functional/intfunc/misc/test_gen_uuid_01.py +++ b/tests/functional/intfunc/misc/test_gen_uuid_01.py @@ -3,7 +3,7 @@ # id: functional.intfunc.misc.gen_uuid_01 # title: test for GEN_UUID() # decription: Returns a universal unique number. -# tracker_id: +# tracker_id: # min_versions: [] # versions: 3.0 # qmid: functional.intfunc.misc.gen_uuid_01 @@ -56,13 +56,11 @@ expected_stdout_1 = """ COUNT 1 1 1 - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): - act_1.charset = 'NONE' act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/misc/test_hash_01.py b/tests/functional/intfunc/misc/test_hash_01.py index 1240545f..f319b633 100644 --- a/tests/functional/intfunc/misc/test_hash_01.py +++ b/tests/functional/intfunc/misc/test_hash_01.py @@ -23,17 +23,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select hash('toto') from rdb$database;""" +test_script_1 = """select hash('toto') from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ HASH ===================== - 505519""" +505519""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/string/test_ascii_01.py b/tests/functional/intfunc/string/test_ascii_01.py index f9515920..cd2d076f 100644 --- a/tests/functional/intfunc/string/test_ascii_01.py +++ b/tests/functional/intfunc/string/test_ascii_01.py @@ -29,12 +29,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ASCII_CHAR ========== A - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/string/test_ascii_val_01.py b/tests/functional/intfunc/string/test_ascii_val_01.py index b63ae8b8..421c3267 100644 --- a/tests/functional/intfunc/string/test_ascii_val_01.py +++ b/tests/functional/intfunc/string/test_ascii_val_01.py @@ -19,7 +19,7 @@ # qmid: functional.intfunc.string.ascii_val_01 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 2.1 # resources: None @@ -71,19 +71,17 @@ db_1 = db_factory(charset='UTF8', sql_dialect=3, init=init_script_1) # print ("Test Failed for ascii_val('')") # print (e) # else: -# pass +# pass #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """[(65,)] [(65,)] [(None,)] -[(0,)] -""" +[(0,)]""" @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/intfunc/string/test_left_01.py b/tests/functional/intfunc/string/test_left_01.py index 531e44e5..a81211ef 100644 --- a/tests/functional/intfunc/string/test_left_01.py +++ b/tests/functional/intfunc/string/test_left_01.py @@ -23,17 +23,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """select left('bonjour', 3) - from rdb$database;""" +from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ LEFT ======= - bon""" +bon""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/string/test_lpad_01.py b/tests/functional/intfunc/string/test_lpad_01.py index 6222fd27..2c9cb3c4 100644 --- a/tests/functional/intfunc/string/test_lpad_01.py +++ b/tests/functional/intfunc/string/test_lpad_01.py @@ -21,7 +21,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -144,9 +144,8 @@ db_1 = db_factory(charset='ISO8859_1', sql_dialect=3, init=init_script_1) # ########### # cleanup( (f_run_sql, f_run_log, f_run_err) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ @@ -161,11 +160,10 @@ expected_stdout_1 = """ EXPECTED STDERR: arithmetic exception, numeric overflow, or string truncation EXPECTED STDERR: -string right truncation EXPECTED STDERR: -expected length 32765, actual 32766 - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/intfunc/string/test_overlay_01.py b/tests/functional/intfunc/string/test_overlay_01.py index 1f6ea7e5..79b22585 100644 --- a/tests/functional/intfunc/string/test_overlay_01.py +++ b/tests/functional/intfunc/string/test_overlay_01.py @@ -22,18 +22,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select OVERLAY( 'il fait beau dans le sud de la france' PLACING 'NORD' FROM 22 for 4 ) from rdb$database;""" +test_script_1 = """select OVERLAY( 'il fait beau dans le sud de la france' PLACING 'NORD' FROM 22 for 4 ) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ OVERLAY ========================================== - il fait beau dans le NORD de la france -""" +il fait beau dans le NORD de la france""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/string/test_position_01.py b/tests/functional/intfunc/string/test_position_01.py index d10ae5f7..719b1b2b 100644 --- a/tests/functional/intfunc/string/test_position_01.py +++ b/tests/functional/intfunc/string/test_position_01.py @@ -23,18 +23,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ select position('beau' IN 'il fait beau dans le nord' ) from rdb$database; - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ POSITION ============ - 9""" +9""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/string/test_position_02.py b/tests/functional/intfunc/string/test_position_02.py index a3d79d97..5bcb6f25 100644 --- a/tests/functional/intfunc/string/test_position_02.py +++ b/tests/functional/intfunc/string/test_position_02.py @@ -20,8 +20,7 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """SELECT POSITION('beau','beau,il fait beau') C1,POSITION('beau','beau,il fait beau',2) C2 FROM RDB$DATABASE; -""" +test_script_1 = """SELECT POSITION('beau','beau,il fait beau') C1,POSITION('beau','beau,il fait beau',2) C2 FROM RDB$DATABASE;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -29,12 +28,11 @@ expected_stdout_1 = """ C1 C2 ============ ============ 1 14 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/string/test_replace_01.py b/tests/functional/intfunc/string/test_replace_01.py index 46453c02..91cf4ee6 100644 --- a/tests/functional/intfunc/string/test_replace_01.py +++ b/tests/functional/intfunc/string/test_replace_01.py @@ -22,17 +22,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select REPLACE('toto','o','i') from rdb$database;""" +test_script_1 = """select REPLACE('toto','o','i') from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ REPLACE ======= - titi""" +titi""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/string/test_reverse_01.py b/tests/functional/intfunc/string/test_reverse_01.py index ef049715..6936449d 100644 --- a/tests/functional/intfunc/string/test_reverse_01.py +++ b/tests/functional/intfunc/string/test_reverse_01.py @@ -22,18 +22,18 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select REVERSE('DRON') from rdb$database;""" +test_script_1 = """select REVERSE('DRON') from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ REVERSE ======= - NORD""" +NORD""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/string/test_right_01.py b/tests/functional/intfunc/string/test_right_01.py index ea3b6c1d..2cb8d0c4 100644 --- a/tests/functional/intfunc/string/test_right_01.py +++ b/tests/functional/intfunc/string/test_right_01.py @@ -23,17 +23,17 @@ init_script_1 = """""" db_1 = db_factory(sql_dialect=3, init=init_script_1) -test_script_1 = """ select RIGHT('NORD PAS DE CALAIS', 13) from rdb$database;""" +test_script_1 = """select RIGHT('NORD PAS DE CALAIS', 13) from rdb$database;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RIGHT ================== - PAS DE CALAIS""" +PAS DE CALAIS""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/intfunc/string/test_rpad_01.py b/tests/functional/intfunc/string/test_rpad_01.py index cd72de1c..74bf4322 100644 --- a/tests/functional/intfunc/string/test_rpad_01.py +++ b/tests/functional/intfunc/string/test_rpad_01.py @@ -21,7 +21,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -144,9 +144,8 @@ db_1 = db_factory(charset='ISO8859_1', sql_dialect=3, init=init_script_1) # ########### # cleanup( (f_run_sql, f_run_log, f_run_err) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ @@ -162,11 +161,10 @@ expected_stdout_1 = """ EXPECTED STDERR: arithmetic exception, numeric overflow, or string truncation EXPECTED STDERR: -string right truncation EXPECTED STDERR: -expected length 32765, actual 32766 - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/monitoring/test_01.py b/tests/functional/monitoring/test_01.py index a4282b15..2dd06fa4 100644 --- a/tests/functional/monitoring/test_01.py +++ b/tests/functional/monitoring/test_01.py @@ -22,7 +22,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SELECT MON$ISOLATION_MODE FROM MON$TRANSACTIONS - WHERE MON$TRANSACTION_ID = CURRENT_TRANSACTION;""" +WHERE MON$TRANSACTION_ID = CURRENT_TRANSACTION;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -30,12 +30,11 @@ expected_stdout_1 = """ MON$ISOLATION_MODE ================== 1 - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/monitoring/test_02.py b/tests/functional/monitoring/test_02.py index 27820e44..29956f1b 100644 --- a/tests/functional/monitoring/test_02.py +++ b/tests/functional/monitoring/test_02.py @@ -29,7 +29,7 @@ test_script_1 = """ where a.mon$attachment_id = current_connection and s.mon$state = 1; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -42,11 +42,11 @@ expected_stdout_1 = """ where a.mon$attachment_id = current_connection and s.mon$state = 1 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/monitoring/test_04.py b/tests/functional/monitoring/test_04.py index 06fcc99c..446d6aeb 100644 --- a/tests/functional/monitoring/test_04.py +++ b/tests/functional/monitoring/test_04.py @@ -9,7 +9,7 @@ # qmid: functional.monitoring.monitoring_04 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -103,9 +103,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ''' # # runProgram('isql',[ '-pag','99999','-q' ], sql_chk) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ CHECK_NO WHO_AM_I WHO_ELSE TID_ROWN ISOL_MODE ISOL_DESCR @@ -121,11 +120,10 @@ expected_stdout_1 = """ 2 SYSDBA U02 2 1 SNAPSHOT 2 SYSDBA U02 3 0 CONSISTENCY Records affected: 6 - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/procedure/alter/test_01.py b/tests/functional/procedure/alter/test_01.py index 74dfb4ea..ced882e1 100644 --- a/tests/functional/procedure/alter/test_01.py +++ b/tests/functional/procedure/alter/test_01.py @@ -38,19 +38,17 @@ BEGIN END ^ SET TERM ;^ commit; -EXECUTE PROCEDURE test; -""" +EXECUTE PROCEDURE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ID ============ - 2 -""" +2""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/procedure/alter/test_02.py b/tests/functional/procedure/alter/test_02.py index fec44763..e2f5338a 100644 --- a/tests/functional/procedure/alter/test_02.py +++ b/tests/functional/procedure/alter/test_02.py @@ -28,20 +28,18 @@ ALTER PROCEDURE test RETURNS (id INTEGER)AS BEGIN id=2; END ^ -SET TERM ;^ -""" +SET TERM ;^""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stderr_1 = """Statement failed, SQLSTATE = 42000 unsuccessful metadata update -ALTER PROCEDURE TEST failed --Procedure TEST not found -""" +-Procedure TEST not found""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/procedure/create/test_01.py b/tests/functional/procedure/create/test_01.py index e425f0d5..0292aef0 100644 --- a/tests/functional/procedure/create/test_01.py +++ b/tests/functional/procedure/create/test_01.py @@ -39,12 +39,11 @@ expected_stdout_1 = """Procedure text: BEGIN POST_EVENT 'Test'; END -============================================================================= -""" +=============================================================================""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/procedure/create/test_02.py b/tests/functional/procedure/create/test_02.py index 727c4ea1..bd5564d4 100644 --- a/tests/functional/procedure/create/test_02.py +++ b/tests/functional/procedure/create/test_02.py @@ -33,8 +33,7 @@ BEGIN END ^ SET TERM ;^ commit; -SHOW PROCEDURE test; -""" +SHOW PROCEDURE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -56,12 +55,11 @@ P8 INPUT TIME P9 INPUT TIMESTAMP P10 INPUT CHAR(40) P11 INPUT VARCHAR(60) -P12 INPUT CHAR(70) CHARACTER SET ISO8859_1 -""" +P12 INPUT CHAR(70) CHARACTER SET ISO8859_1""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/procedure/create/test_03.py b/tests/functional/procedure/create/test_03.py index bdad75a5..e5238ab0 100644 --- a/tests/functional/procedure/create/test_03.py +++ b/tests/functional/procedure/create/test_03.py @@ -44,8 +44,7 @@ BEGIN END ^ SET TERM ;^ commit; -SHOW PROCEDURE test; -""" +SHOW PROCEDURE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -78,12 +77,11 @@ P8 OUTPUT TIME P9 OUTPUT TIMESTAMP P10 OUTPUT CHAR(40) P11 OUTPUT VARCHAR(60) -P12 OUTPUT CHAR(70) CHARACTER SET ISO8859_1 -""" +P12 OUTPUT CHAR(70) CHARACTER SET ISO8859_1""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/procedure/create/test_04.py b/tests/functional/procedure/create/test_04.py index 0f00d45c..aa29d1d2 100644 --- a/tests/functional/procedure/create/test_04.py +++ b/tests/functional/procedure/create/test_04.py @@ -54,8 +54,7 @@ BEGIN END ^ SET TERM ;^ commit; -SHOW PROCEDURE test; -""" +SHOW PROCEDURE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -87,12 +86,11 @@ BEGIN p11='Text p11'; p12='Text p13'; END -============================================================================= -""" +=============================================================================""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/procedure/create/test_05.py b/tests/functional/procedure/create/test_05.py index 8142df35..3d8ff454 100644 --- a/tests/functional/procedure/create/test_05.py +++ b/tests/functional/procedure/create/test_05.py @@ -114,12 +114,11 @@ BEGIN WHEN ANY DO p1=45; END END -============================================================================= -""" +=============================================================================""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/procedure/create/test_06.py b/tests/functional/procedure/create/test_06.py index 77cd0d05..71bed281 100644 --- a/tests/functional/procedure/create/test_06.py +++ b/tests/functional/procedure/create/test_06.py @@ -33,8 +33,7 @@ BEGIN END ^ SET TERM ;^ commit; -SHOW PROCEDURE test; -""" +SHOW PROCEDURE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -49,12 +48,11 @@ BEGIN END ============================================================================= Parameters: -ID OUTPUT INTEGER -""" +ID OUTPUT INTEGER""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/procedure/create/test_07.py b/tests/functional/procedure/create/test_07.py index 25715552..8fbdaa5e 100644 --- a/tests/functional/procedure/create/test_07.py +++ b/tests/functional/procedure/create/test_07.py @@ -37,20 +37,18 @@ BEGIN ID=5; SUSPEND; END ^ -SET TERM ;^ -""" +SET TERM ;^""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stderr_1 = """Statement failed, SQLSTATE = 42000 unsuccessful metadata update -CREATE PROCEDURE TEST failed --Procedure TEST already exists -""" +-Procedure TEST already exists""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/procedure/create/test_08.py b/tests/functional/procedure/create/test_08.py index a74e3282..00d51cc5 100644 --- a/tests/functional/procedure/create/test_08.py +++ b/tests/functional/procedure/create/test_08.py @@ -28,8 +28,7 @@ CREATE PROCEDURE test RETURNS(id INT)AS BEGIN COMMIT; END ^ -SET TERM ;^ -""" +SET TERM ;^""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -38,12 +37,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 Dynamic SQL Error -SQL error code = -104 -Token unknown - line 3, column 3 --COMMIT -""" +-COMMIT""" @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/procedure/create/test_15.py b/tests/functional/procedure/create/test_15.py index 2e3c3877..d72d24ca 100644 --- a/tests/functional/procedure/create/test_15.py +++ b/tests/functional/procedure/create/test_15.py @@ -36,8 +36,7 @@ COMMIT; db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """SHOW PROCEDURE NEW_PROCEDURE; -SELECT * FROM NEW_PROCEDURE('TEST'); -""" +SELECT * FROM NEW_PROCEDURE('TEST');""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -57,12 +56,11 @@ NOM3 OUTPUT VARCHAR(20) CHARACTER SET ISO8859_1 NOM3 ==================== TEST - """ @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/procedure/create/test_16.py b/tests/functional/procedure/create/test_16.py index 4ebbdb2a..d9c03523 100644 --- a/tests/functional/procedure/create/test_16.py +++ b/tests/functional/procedure/create/test_16.py @@ -48,7 +48,7 @@ test_script_1 = """ from rdb$procedures p where upper(p.rdb$procedure_name) in ( upper('with_suspend'), upper('no_suspend') ) order by 1; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -58,11 +58,11 @@ expected_stdout_1 = """ RDB$PROCEDURE_NAME WITH_SUSPEND RDB$PROCEDURE_TYPE 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/replication/__init__.py b/tests/functional/replication/__init__.py new file mode 100644 index 00000000..4adc9840 --- /dev/null +++ b/tests/functional/replication/__init__.py @@ -0,0 +1 @@ +# Python module diff --git a/tests/functional/replication/test_blob_segments_longer_32kb_are_not_replicated.py b/tests/functional/replication/test_blob_segments_longer_32kb_are_not_replicated.py new file mode 100644 index 00000000..8dacabe5 --- /dev/null +++ b/tests/functional/replication/test_blob_segments_longer_32kb_are_not_replicated.py @@ -0,0 +1,353 @@ +#coding:utf-8 +# +# id: functional.replication.blob_segments_longer_32kb_are_not_replicated +# title: Problem with replication of BLOB segments longer than 32KB +# decription: +# https://github.com/FirebirdSQL/firebird/issues/6893 +# +# Test creates table with blob column and performs trivial scenario: +# insert into test(id, b) values( 1, ); +# +# After this we do connect and query ID of last generated segment by querying REPLICATION_SEQUENCE variable +# from SYSTEM context namespace. +# +# Then we wait until replica becomes actual to master, and this delay will last no more then threshold +# that is defined by MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG variable (measured in seconds). +# During this delay, we check every second for replication log and search there line with number of last generated +# segment (which was replicated and deleting finally). +# We can assume that replication finished OK only when such line is found see ('POINT-1'). +# +# Then we invoke ISQL with executing auxiliary script for drop all DB objects on master (with '-nod' command switch). +# After all objects will be dropped, we have to wait again until replica becomes actual with master (see 'POINT-2'). +# +# Finally, we extract metadata for master and replica and compare them (see 'f_meta_diff'). +# The only difference in metadata must be 'CREATE DATABASE' statement with different DB names - we suppress it, +# thus metadata difference must not be issued. +# +# ################ +# ### N O T E ### +# ################ +# Test assumes that master and replica DB have been created beforehand. +# Also, it assumes that %FB_HOME% +# eplication.conf has been prepared with apropriate parameters for replication. +# Particularly, name of directories and databases must have info about checked FB major version and ServerMode. +# * verbose = true // in order to find out line with message that required segment was replicated +# * section for master database with specified parameters: +# journal_directory = "!fbt_repo! mp +# b-replication.!fb_major!.!server_mode!.journal" +# journal_archive_directory = "!fbt_repo! mp +# b-replication.!fb_major!.!server_mode!.archive" +# journal_archive_command = "copy $(pathname) $(archivepathname)" +# journal_archive_timeout = 10 +# * section for replica database with specified parameter: +# journal_source_directory = "!fbt_repo! mp +# b-replication.!fb_major!.!server_mode!.archive" +# +# Master and replica databases must be created in "%FBT_REPO% mp" directory and have names like these: +# 'fbt-main.fb40.SS.fdb'; 'fbt-repl.fb40.SS.fdb'; - for FB 4.x ('SS' = Super; 'CS' = Classic) +# 'fbt-main.fb50.SS.fdb'; 'fbt-repl.fb50.SS.fdb'; - for FB 5.x ('SS' = Super; 'CS' = Classic) +# NB: fixed numeric value ('40' or '50') must be used for any minor FB version (4.0; 4.0.1; 4.1; 5.0; 5.1 etc) +# +# These two databases must NOT be dropped in any of tests related to replication! +# They are created and dropped in the batch scenario which prepares FB instance to be checked for each ServerMode +# and make cleanup after it, i.e. when all tests will be completed. +# +# NB. Currently this task presents only in Windows batch, thus test has attribute platform = 'Windows'. +# +# Temporary comment. For debug purpoces: +# 1) find out SUFFIX of the name of FB service which is to be tested (e.g. 'DefaultInstance', '40SS' etc); +# 2) copy file %fbt-repo% ests +# unctional abloidatches\\setup-fb-for-replication.bat.txt +# to some place and rename it "*.bat"; +# 3) open this .bat in editor and asjust value of 'fbt_repo' variable; +# 4) run: setup-fb-for-replication.bat [SUFFIX_OF_FB_SERVICE] +# where SUFFIX_OF_FB_SERVICE is ending part of FB service which you want to check: +# DefaultInstance ; 40ss ; 40cs ; 50ss ; 50cs etc +# 5) batch 'setup-fb-for-replication.bat' will: +# * stop selected FB instance +# * create test databases (in !fbt_repo! mp\\); +# * prepare journal/archive sub-folders for replication (also in !fbt_repo! mp\\); +# * replace %fb_home% +# eplication.conf with apropriate +# * start selected FB instance +# 6) run this test (FB instance will be already launched by setup-fb-for-replication.bat): +# %fpt_repo% +# bt-run2.bat dblevel-triggers-must-not-fire-on-replica.fbt 50ss, etc +# +# Confirmed bug on 5.0.0.88, 4.0.1.2523: record appears on replica but blob will be NULL. +# Checked on: 5.0.0.120, 4.0.1.2547 -- all OK. +# +# tracker_id: +# min_versions: ['4.0'] +# versions: 4.0 +# qmid: None + +import pytest +from firebird.qa import db_factory, python_act, Action + +# version: 4.0 +# resources: None + +substitutions_1 = [('Start removing objects in:.*', 'Start removing objects'), ('Finish. Total objects removed: [1-9]\\d*', 'Finish. Total objects removed'), ('.* CREATE DATABASE .*', '')] + +init_script_1 = """""" + +db_1 = db_factory(sql_dialect=3, init=init_script_1) + +# test_script_1 +#--- +# +# import os +# import subprocess +# import re +# import difflib +# import shutil +# import time +# +# os.environ["ISC_USER"] = user_name +# os.environ["ISC_PASSWORD"] = user_password +# +# ##################################### +# MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG = 65 +# ##################################### +# +# svc = fdb.services.connect(host='localhost', user=user_name, password=user_password) +# FB_HOME = svc.get_home_directory() +# svc.close() +# +# engine = db_conn.engine_version # 4.0; 4.1; 5.0 etc -- type float +# fb_major = 'fb' + str(engine)[:1] + '0' # 'fb40'; 'fb50' +# +# cur = db_conn.cursor() +# cur.execute("select rdb$config_value from rdb$config where upper(rdb$config_name) = upper('ServerMode')") +# server_mode = 'XX' +# for r in cur: +# if r[0] == 'Super': +# server_mode = 'SS' +# elif r[0] == 'SuperClassic': +# server_mode = 'SC' +# elif r[0] == 'Classic': +# server_mode = 'CS' +# cur.close() +# +# # 'fbt-main.fb50.ss.fdb' etc: +# db_main = os.path.join( context['temp_directory'], 'fbt-main.' + fb_major + '.' + server_mode + '.fdb' ) +# db_repl = db_main.replace( 'fbt-main.', 'fbt-repl.') +# +# # Folders for journalling and archieving segments. +# repl_journal_dir = os.path.join( context['temp_directory'], 'fb-replication.' + fb_major + '.' + server_mode + '.journal' ) +# repl_archive_dir = os.path.join( context['temp_directory'], 'fb-replication.' + fb_major + '.' + server_mode + '.archive' ) +# +# db_conn.close() +# +# #-------------------------------------------- +# +# def flush_and_close( file_handle ): +# # https://docs.python.org/2/library/os.html#os.fsync +# # If you're starting with a Python file object f, +# # first do f.flush(), and +# # then do os.fsync(f.fileno()), to ensure that all internal buffers associated with f are written to disk. +# global os +# +# file_handle.flush() +# if file_handle.mode not in ('r', 'rb') and file_handle.name != os.devnull: +# # otherwise: "OSError: [Errno 9] Bad file descriptor"! +# os.fsync(file_handle.fileno()) +# file_handle.close() +# +# #-------------------------------------------- +# +# def cleanup( f_names_list ): +# global os +# for i in range(len( f_names_list )): +# if type(f_names_list[i]) == file: +# del_name = f_names_list[i].name +# elif type(f_names_list[i]) == str: +# del_name = f_names_list[i] +# else: +# print('Unrecognized type of element:', f_names_list[i], ' - can not be treated as file.') +# del_name = None +# +# if del_name and os.path.isfile( del_name ): +# os.remove( del_name ) +# +# #-------------------------------------------- +# +# def wait_for_data_in_replica( fb_home, max_allowed_time_for_wait, db_main, prefix_msg = '' ): +# +# global re +# global difflib +# global time +# +# replold_lines = [] +# with open( os.path.join(fb_home,'replication.log'), 'r') as f: +# replold_lines = f.readlines() +# +# con = fdb.connect( dsn = 'localhost:' + db_main, no_db_triggers = 1) +# cur = con.cursor() +# cur.execute("select rdb$get_context('SYSTEM','REPLICATION_SEQUENCE') from rdb$database") +# for r in cur: +# last_generated_repl_segment = r[0] +# cur.close() +# con.close() +# +# #print('last_generated_repl_segment:', last_generated_repl_segment) +# +# # VERBOSE: Segment 1 (2582 bytes) is replicated in 1 second(s), deleting the file +# p=re.compile( '\\+\\s+verbose:\\s+segment\\s+%(last_generated_repl_segment)s\\s+\\(\\d+\\s+bytes\\)\\s+is\\s+replicated.*deleting' % locals(), re.IGNORECASE) +# +# found_required_message = False +# for i in range(0,max_allowed_time_for_wait): +# time.sleep(1) +# +# # Get content of fb_home replication.log _after_ isql finish: +# f_repllog_new = open( os.path.join(fb_home,'replication.log'), 'r') +# diff_data = difflib.unified_diff( +# replold_lines, +# f_repllog_new.readlines() +# ) +# f_repllog_new.close() +# +# for k,d in enumerate(diff_data): +# if p.search(d): +# print( (prefix_msg + ' ' if prefix_msg else '') + 'FOUND message about replicated segment.' ) +# found_required_message = True +# break +# +# if found_required_message: +# break +# +# if not found_required_message: +# print('UNEXPECTED RESULT: no message about replicated segment for %d seconds.' % max_allowed_time_for_wait) +# +# #-------------------------------------------- +# +# sql_ddl = ''' set bail on; +# set list on; +# +# recreate table test(id int primary key, b blob); +# insert into test(id, b) values(1, lpad('',65533,gen_uuid())); +# commit; +# +# select rdb$get_context('SYSTEM','REPLICATION_SEQUENCE') as last_generated_repl_segment from rdb$database; +# quit; +# ''' % locals() +# +# +# f_sql_chk = open( os.path.join(context['temp_directory'],'tmp_gh_6893_test.sql'), 'w') +# f_sql_chk.write(sql_ddl) +# flush_and_close( f_sql_chk ) +# +# f_sql_log = open( ''.join( (os.path.splitext(f_sql_chk.name)[0], '.log' ) ), 'w') +# f_sql_err = open( ''.join( (os.path.splitext(f_sql_chk.name)[0], '.err' ) ), 'w') +# subprocess.call( [ context['isql_path'], 'localhost:' + db_main, '-i', f_sql_chk.name ], stdout = f_sql_log, stderr = f_sql_err) +# flush_and_close( f_sql_log ) +# flush_and_close( f_sql_err ) +# +# last_generated_repl_segment = 0 +# +# with open(f_sql_err.name,'r') as f: +# for line in f: +# print('UNEXPECTED STDERR in initial SQL: ' + line) +# MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG = 0 +# +# if MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG: # ==> initial SQL script finished w/o errors +# +# ############################################################################## +# ### W A I T U N T I L R E P L I C A B E C O M E S A C T U A L ### +# ############################################################################## +# wait_for_data_in_replica( FB_HOME, MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG, db_main, 'POINT-1' ) +# +# # runProgram('isql', ['localhost:' + db_repl, '-nod'], "set list on; select count(*) as long_blob_on_replica from test where octet_length(b) > 32768 and id = 1;") +# runProgram('isql', ['localhost:' + db_repl, '-nod'], "set list on; select octet_length(t.b) as replicated_blob_octet_len from rdb$database r left join test t on t.id = 1;") +# +# # return initial state of master DB: +# # remove all DB objects (tables, views, ...): +# # -------------------------------------------- +# sql_clean_ddl = os.path.join(context['files_location'],'drop-all-db-objects.sql') +# +# f_clean_log=open( os.path.join(context['temp_directory'],'tmp_gh_6893_drop-all-db-objects.log'), 'w') +# f_clean_err=open( ''.join( ( os.path.splitext(f_clean_log.name)[0], '.err') ), 'w') +# subprocess.call( [context['isql_path'], 'localhost:' + db_main, '-q', '-nod', '-i', sql_clean_ddl], stdout=f_clean_log, stderr=f_clean_err ) +# flush_and_close(f_clean_log) +# flush_and_close(f_clean_err) +# +# with open(f_clean_err.name,'r') as f: +# for line in f: +# print('UNEXPECTED STDERR in cleanup SQL: ' + line) +# MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG = 0 +# +# with open(f_clean_log.name,'r') as f: +# for line in f: +# # show number of dropped objects +# print(line) +# +# if MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG: # ==> initial SQL script finished w/o errors +# +# ############################################################################## +# ### W A I T U N T I L R E P L I C A B E C O M E S A C T U A L ### +# ############################################################################## +# wait_for_data_in_replica( FB_HOME, MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG, db_main, 'POINT-2' ) +# +# f_main_meta_sql=open( os.path.join(context['temp_directory'],'tmp_gh_6893_db_main_meta.sql'), 'w') +# subprocess.call( [context['isql_path'], 'localhost:' + db_main, '-q', '-nod', '-ch', 'utf8', '-x'], stdout=f_main_meta_sql, stderr=subprocess.STDOUT ) +# flush_and_close( f_main_meta_sql ) +# +# f_repl_meta_sql=open( os.path.join(context['temp_directory'],'tmp_gh_6893_db_repl_meta.sql'), 'w') +# subprocess.call( [context['isql_path'], 'localhost:' + db_repl, '-q', '-nod', '-ch', 'utf8', '-x'], stdout=f_repl_meta_sql, stderr=subprocess.STDOUT ) +# flush_and_close( f_repl_meta_sql ) +# +# db_main_meta=open(f_main_meta_sql.name, 'r') +# db_repl_meta=open(f_repl_meta_sql.name, 'r') +# +# diffmeta = ''.join(difflib.unified_diff( +# db_main_meta.readlines(), +# db_repl_meta.readlines() +# )) +# db_main_meta.close() +# db_repl_meta.close() +# +# f_meta_diff=open( os.path.join(context['temp_directory'],'tmp_gh_6893_db_meta_diff.txt'), 'w', buffering = 0) +# f_meta_diff.write(diffmeta) +# flush_and_close( f_meta_diff ) +# +# # Following must issue only TWO rows: +# # UNEXPECTED METADATA DIFF.: -/* CREATE DATABASE 'localhost:[db_main]' ... */ +# # UNEXPECTED METADATA DIFF.: -/* CREATE DATABASE 'localhost:[db_repl]' ... */ +# # Only thes lines will be suppressed further (see subst. section): +# with open(f_meta_diff.name, 'r') as f: +# for line in f: +# if line[:1] in ('-', '+') and line[:3] not in ('---','+++'): +# print('UNEXPECTED METADATA DIFF.: ' + line) +# +# +# ###################### +# ### A C H T U N G ### +# ###################### +# # MANDATORY, OTHERWISE REPLICATION GETS STUCK ON SECOND RUN OF THIS TEST +# # WITH 'ERROR: Record format with length 68 is not found for table TEST': +# runProgram('gfix', ['-sweep', 'localhost:' + db_repl]) +# runProgram('gfix', ['-sweep', 'localhost:' + db_main]) +# ####################### +# +# # cleanup: +# ########## +# cleanup( (f_sql_chk, f_sql_log, f_sql_err,f_clean_log,f_clean_err,f_main_meta_sql,f_repl_meta_sql,f_meta_diff) ) +# +#--- +act_1 = python_act('db_1', substitutions=substitutions_1) + +expected_stdout_1 = """ + POINT-1 FOUND message about replicated segment. + REPLICATED_BLOB_OCTET_LEN 65533 + Start removing objects + Finish. Total objects removed + POINT-2 FOUND message about replicated segment. +""" + +@pytest.mark.version('>=4.0') +@pytest.mark.platform('Windows') +def test_1(act_1: Action): + pytest.fail("Test not IMPLEMENTED") + + diff --git a/tests/functional/replication/test_failed_DDL_commands_can_be_replicated.py b/tests/functional/replication/test_failed_DDL_commands_can_be_replicated.py new file mode 100644 index 00000000..637b6aa9 --- /dev/null +++ b/tests/functional/replication/test_failed_DDL_commands_can_be_replicated.py @@ -0,0 +1,450 @@ +#coding:utf-8 +# +# id: functional.replication.failed_DDL_commands_can_be_replicated +# title: Failed DDL commands can be replicated +# decription: +# https://github.com/FirebirdSQL/firebird/issues/6907 +# +# We create table, insert three rows in it (with null value in one of them) and, according to ticket info, run +# several DDL statements that for sure must fail, namely: +# * add new column with NOT-null requirement for its values (can not be done because nmon-empty table); +# * change DDL of existing column: add NON-null requirement to it (also can not be done because of NULL in one of rows); +# * create domain that initially allows null, then recreate table and add several rows in in (with NULL in one of them), +# and finally - try to change domain DDL by add NOT-null check. It must fail because of existing nulls in the table. +# +# After this we wait until replica becomes actual to master, and this delay will last no more then threshold +# that is defined by MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG variable (measured in seconds). +# During this delay, we check every second for replication log and search there line with number of last generated +# segment (which was replicated and deleting finally). +# We can assume that replication finished OK only when such line is found see ('POINT-1'). +# +# Further, we invoke ISQL with executing auxiliary script for drop all DB objects on master (with '-nod' command switch). +# After all objects will be dropped, we have to wait again until replica becomes actual with master (see 'POINT-2'). +# +# Finally, we extract metadata for master and replica and compare them (see 'f_meta_diff'). +# The only difference in metadata must be 'CREATE DATABASE' statement with different DB names - we suppress it, +# thus metadata difference must not be issued. +# +# #################### +# ### CRUCIAL NOTE ### +# #################### +# Currently, 25.06.2021, there is bug in FB 4.x and 5.x which can be seen on SECOND run of this test: message with text +# "ERROR: Record format with length 68 is not found for table TEST" will appear in it after inserting 1st record in master. +# The reason of that is "dirty" pages that remain in RDB$RELATION_FIELDS both on master and replica after dropping table. +# Following query show different data that appear in replica DB on 1st and 2nd run (just after table was created on master): +# ======= +# set blobdisplay 6; +# select rdb$descriptor as fmt_descr +# from rdb$formats natural join rdb$relations where rdb$relation_name = 'TEST'; +# ======= +# This bug was explained by dimitr, see letters 25.06.2021 11:49 and 25.06.2021 16:56. +# It will be fixed later. +# +# The only workaround to solve this problem is to make SWEEP after all DB objects have been dropped. +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# !NB! BOTH master and replica must be cleaned up by sweep! +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# ################ +# ### N O T E ### +# ################ +# Test assumes that master and replica DB have been created beforehand. +# Also, it assumes that %FB_HOME% +# eplication.conf has been prepared with apropriate parameters for replication. +# Particularly, name of directories and databases must have info about checked FB major version and ServerMode. +# * verbose = true // in order to find out line with message that required segment was replicated +# * section for master database with specified parameters: +# journal_directory = "!fbt_repo! mp +# b-replication.!fb_major!.!server_mode!.journal" +# journal_archive_directory = "!fbt_repo! mp +# b-replication.!fb_major!.!server_mode!.archive" +# journal_archive_command = "copy $(pathname) $(archivepathname)" +# journal_archive_timeout = 10 +# * section for replica database with specified parameter: +# journal_source_directory = "!fbt_repo! mp +# b-replication.!fb_major!.!server_mode!.archive" +# +# Master and replica databases must be created in "!fbt_repo! mp" directory and have names like these: +# 'fbt-main.fb40.SS.fdb'; 'fbt-repl.fb40.SS.fdb'; - for FB 4.x ('SS' = Super; 'CS' = Classic) +# 'fbt-main.fb50.SS.fdb'; 'fbt-repl.fb50.SS.fdb'; - for FB 5.x ('SS' = Super; 'CS' = Classic) +# NB: fixed numeric value ('40' or '50') must be used for any minor FB version (4.0; 4.0.1; 4.1; 5.0; 5.1 etc) +# +# These two databases must NOT be dropped in any of tests related to replication! +# They are created and dropped in the batch scenario which prepares FB instance to be checked for each ServerMode +# and make cleanup after it, i.e. when all tests will be completed. +# +# NB. Currently this task was implemented only in Windows batch, thus test has attribute platform = 'Windows'. +# +# Temporary comment. For debug purpoces: +# 1) find out SUFFIX of the name of FB service which is to be tested (e.g. 'DefaultInstance', '40SS' etc); +# 2) copy file %fbt-repo% ests +# unctional abloidatches\\setup-fb-for-replication.bat.txt +# to some place and rename it "*.bat"; +# 3) open this .bat in editor and asjust value of 'fbt_repo' variable; +# 4) run: setup-fb-for-replication.bat [SUFFIX_OF_FB_SERVICE] +# where SUFFIX_OF_FB_SERVICE is ending part of FB service which you want to check: +# DefaultInstance ; 40ss ; 40cs ; 50ss ; 50cs etc +# 5) batch 'setup-fb-for-replication.bat' will: +# * stop selected FB instance +# * create test databases (in !fbt_repo! mp\\); +# * prepare journal/archive sub-folders for replication (also in !fbt_repo! mp\\); +# * replace %fb_home% +# eplication.conf with apropriate +# * start selected FB instance +# 6) run this test (FB instance will be already launched by setup-fb-for-replication.bat): +# %fpt_repo% +# bt-run2.bat dblevel-triggers-must-not-fire-on-replica.fbt 50ss, etc +# +# Confirmed bug on 4.0.0.126, 4.0.1.2556: message "Cannot make field Y of table TEST NOT NULL because there are NULLs" +# will be added into replication log and after this replication gets stuck. +# +# Checked on: 5.0.0.131 SS/CS; 4.0.1.2563 SS/CS. +# +# +# tracker_id: +# min_versions: ['4.0.1'] +# versions: 4.0.1 +# qmid: None + +import pytest +from firebird.qa import db_factory, python_act, Action + +# version: 4.0.1 +# resources: None + +substitutions_1 = [('Start removing objects in:.*', 'Start removing objects'), ('Finish. Total objects removed: [1-9]\\d*', 'Finish. Total objects removed'), ('.* CREATE DATABASE .*', ''), ('FOUND message about replicated segment N .*', 'FOUND message about replicated segment')] + +init_script_1 = """""" + +db_1 = db_factory(sql_dialect=3, init=init_script_1) + +# test_script_1 +#--- +# +# import os +# import subprocess +# import re +# import difflib +# import shutil +# import time +# +# os.environ["ISC_USER"] = user_name +# os.environ["ISC_PASSWORD"] = user_password +# +# ##################################### +# MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG = 65 +# ##################################### +# +# svc = fdb.services.connect(host='localhost', user=user_name, password=user_password) +# FB_HOME = svc.get_home_directory() +# svc.close() +# +# engine = db_conn.engine_version # 4.0; 4.1; 5.0 etc -- type float +# fb_major = 'fb' + str(engine)[:1] + '0' # 'fb40'; 'fb50' +# +# cur = db_conn.cursor() +# cur.execute("select rdb$config_value from rdb$config where upper(rdb$config_name) = upper('ServerMode')") +# server_mode = 'XX' +# for r in cur: +# if r[0] == 'Super': +# server_mode = 'SS' +# elif r[0] == 'SuperClassic': +# server_mode = 'SC' +# elif r[0] == 'Classic': +# server_mode = 'CS' +# cur.close() +# +# # 'fbt-main.fb50.ss.fdb' etc: +# db_main = os.path.join( context['temp_directory'], 'fbt-main.' + fb_major + '.' + server_mode + '.fdb' ) +# db_repl = db_main.replace( 'fbt-main.', 'fbt-repl.') +# +# # Folders for journalling and archieving segments. +# repl_journal_dir = os.path.join( context['temp_directory'], 'fb-replication.' + fb_major + '.' + server_mode + '.journal' ) +# repl_archive_dir = os.path.join( context['temp_directory'], 'fb-replication.' + fb_major + '.' + server_mode + '.archive' ) +# +# db_conn.close() +# +# #-------------------------------------------- +# +# def flush_and_close( file_handle ): +# # https://docs.python.org/2/library/os.html#os.fsync +# # If you're starting with a Python file object f, +# # first do f.flush(), and +# # then do os.fsync(f.fileno()), to ensure that all internal buffers associated with f are written to disk. +# global os +# +# file_handle.flush() +# if file_handle.mode not in ('r', 'rb') and file_handle.name != os.devnull: +# # otherwise: "OSError: [Errno 9] Bad file descriptor"! +# os.fsync(file_handle.fileno()) +# file_handle.close() +# +# #-------------------------------------------- +# +# def cleanup( f_names_list ): +# global os +# for i in range(len( f_names_list )): +# if type(f_names_list[i]) == file: +# del_name = f_names_list[i].name +# elif type(f_names_list[i]) == str: +# del_name = f_names_list[i] +# else: +# print('Unrecognized type of element:', f_names_list[i], ' - can not be treated as file.') +# del_name = None +# +# if del_name and os.path.isfile( del_name ): +# os.remove( del_name ) +# +# #-------------------------------------------- +# +# def wait_for_data_in_replica( fb_home, max_allowed_time_for_wait, db_main, prefix_msg = '' ): +# +# global re +# global difflib +# global time +# +# replold_lines = [] +# with open( os.path.join(fb_home,'replication.log'), 'r') as f: +# replold_lines = f.readlines() +# +# con = fdb.connect( dsn = 'localhost:' + db_main, no_db_triggers = 1) +# cur = con.cursor() +# cur.execute("select rdb$get_context('SYSTEM','REPLICATION_SEQUENCE') from rdb$database") +# for r in cur: +# last_generated_repl_segment = r[0] +# cur.close() +# con.close() +# +# #print('last_generated_repl_segment:', last_generated_repl_segment) +# +# # VERBOSE: Segment 1 (2582 bytes) is replicated in 1 second(s), deleting the file +# p_successfully_replicated = re.compile( '\\+\\s+verbose:\\s+segment\\s+%(last_generated_repl_segment)s\\s+\\(\\d+\\s+bytes\\)\\s+is\\s+replicated.*deleting' % locals(), re.IGNORECASE) +# +# # VERBOSE: Segment 16 replication failure at offset 33628 +# p_replication_failure = re.compile('segment\\s+\\d+\\s+replication\\s+failure', re.IGNORECASE) +# +# found_required_message = False +# found_replfail_message = False +# found_common_error_msg = False +# +# for i in range(0,max_allowed_time_for_wait): +# +# time.sleep(1) +# +# # Get content of fb_home replication.log _after_ isql finish: +# f_repllog_new = open( os.path.join(fb_home,'replication.log'), 'r') +# diff_data = difflib.unified_diff( +# replold_lines, +# f_repllog_new.readlines() +# ) +# f_repllog_new.close() +# +# ''' +# print('i=%d' % i) +# print('check replold_lines:') +# print('- - - - - - - - - - - -') +# for k in replold_lines: +# print(' ', k) +# print('- - - - - - - - - - - -') +# +# print('check diff_data:') +# print('- - - - - - - - - - - -') +# for k in diff_data: +# print(' ', k) +# print('- - - - - - - - - - - -') +# ''' +# +# for k,d in enumerate(diff_data): +# if p_successfully_replicated.search(d): +# print( (prefix_msg + ' ' if prefix_msg else '') + 'FOUND message about replicated segment N %(last_generated_repl_segment)s.' % locals() ) +# found_required_message = True +# break +# +# if p_replication_failure.search(d): +# print( (prefix_msg + ' ' if prefix_msg else '') + '@@@ SEGMENT REPLICATION FAILURE @@@ ' + d ) +# found_replfail_message = True +# break +# +# if 'ERROR:' in d: +# print( (prefix_msg + ' ' if prefix_msg else '') + '@@@ REPLICATION ERROR @@@ ' + d ) +# found_common_error_msg = True +# break +# +# if found_required_message or found_replfail_message or found_common_error_msg: +# break +# +# if not found_required_message: +# print('UNEXPECTED RESULT: no message about replicating segment N %(last_generated_repl_segment)s for %(max_allowed_time_for_wait)s seconds.' % locals()) +# +# #-------------------------------------------- +# +# sql_ddl = ''' -- do NOT use in this test -- set bail on; +# set list on; +# +# recreate table test(id bigint primary key, x int); +# insert into test(id, x) values(9223372036854775807, 1111); +# insert into test(id, x) values(9223372036854775806, null); +# insert into test(id, x) values(9223372036854775805, 3333); +# commit; +# +# -- must fail: +# alter table test add y int not null; +# commit; +# +# -- must fail: +# alter table test alter column x set not null; +# commit; +# +# +# create domain dm_nn int; +# +# recreate table test(id smallint primary key, x dm_nn); +# insert into test(id, x) values(-1, 1111); +# insert into test(id, x) values(-2, null); +# insert into test(id, x) values(-3, 3333); +# commit; +# +# -- must fail: +# alter domain dm_nn set not null; +# commit; +# +# -- connect 'localhost:%(db_main)s'; +# +# select rdb$get_context('SYSTEM','REPLICATION_SEQUENCE') as last_generated_segment from rdb$database; +# commit; +# ''' % locals() +# +# +# f_sql_chk = open( os.path.join(context['temp_directory'],'tmp_gh_6907_test.sql'), 'w') +# f_sql_chk.write(sql_ddl) +# flush_and_close( f_sql_chk ) +# +# f_sql_log = open( ''.join( (os.path.splitext(f_sql_chk.name)[0], '.log' ) ), 'w') +# f_sql_err = open( ''.join( (os.path.splitext(f_sql_chk.name)[0], '.err' ) ), 'w') +# subprocess.call( [ context['isql_path'], 'localhost:' + db_main, '-i', f_sql_chk.name ], stdout = f_sql_log, stderr = subprocess.STDOUT) +# flush_and_close( f_sql_log ) +# flush_and_close( f_sql_err ) +# +# last_generated_repl_segment = 0 +# +# # do NOT check STDERR of initial SQL: it must contain errors +# # because we try to run DDL statement that for sure will FAIL: +# #with open(f_sql_err.name,'r') as f: +# # for line in f: +# # print('UNEXPECTED STDERR in initial SQL: ' + line) +# # MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG = 0 +# +# if MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG: # ==> initial SQL script finished w/o errors +# +# ############################################################################## +# ### W A I T U N T I L R E P L I C A B E C O M E S A C T U A L ### +# ############################################################################## +# wait_for_data_in_replica( FB_HOME, MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG, db_main, 'POINT-1' ) +# +# runProgram('isql', ['localhost:' + db_main, '-nod'], 'set list on; select t.id as main_id, t.x as main_x from rdb$database r left join test t on 1=1 order by t.id;') +# runProgram('isql', ['localhost:' + db_repl, '-nod'], 'set list on; select t.id as repl_id, t.x as repl_x from rdb$database r left join test t on 1=1 order by t.id;') +# +# # return initial state of master DB: +# # remove all DB objects (tables, views, ...): +# # -------------------------------------------- +# sql_clean_ddl = os.path.join(context['files_location'],'drop-all-db-objects.sql') +# +# f_clean_log=open( os.path.join(context['temp_directory'],'tmp_gh_6907_drop-all-db-objects.log'), 'w') +# f_clean_err=open( ''.join( ( os.path.splitext(f_clean_log.name)[0], '.err') ), 'w') +# subprocess.call( [context['isql_path'], 'localhost:' + db_main, '-q', '-nod', '-i', sql_clean_ddl], stdout=f_clean_log, stderr=f_clean_err ) +# flush_and_close(f_clean_log) +# flush_and_close(f_clean_err) +# +# with open(f_clean_err.name,'r') as f: +# for line in f: +# print('UNEXPECTED STDERR in cleanup SQL: ' + line) +# MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG = 0 +# +# with open(f_clean_log.name,'r') as f: +# for line in f: +# # show number of dropped objects +# print(line) +# +# if MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG: # ==> cleanup SQL script finished w/o errors +# +# ############################################################################## +# ### W A I T U N T I L R E P L I C A B E C O M E S A C T U A L ### +# ############################################################################## +# wait_for_data_in_replica( FB_HOME, MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG, db_main, 'POINT-2' ) +# +# f_main_meta_sql=open( os.path.join(context['temp_directory'],'tmp_gh_6907_db_main_meta.sql'), 'w') +# subprocess.call( [context['isql_path'], 'localhost:' + db_main, '-q', '-nod', '-ch', 'utf8', '-x'], stdout=f_main_meta_sql, stderr=subprocess.STDOUT ) +# flush_and_close( f_main_meta_sql ) +# +# f_repl_meta_sql=open( os.path.join(context['temp_directory'],'tmp_gh_6907_db_repl_meta.sql'), 'w') +# subprocess.call( [context['isql_path'], 'localhost:' + db_repl, '-q', '-nod', '-ch', 'utf8', '-x'], stdout=f_repl_meta_sql, stderr=subprocess.STDOUT ) +# flush_and_close( f_repl_meta_sql ) +# +# db_main_meta=open(f_main_meta_sql.name, 'r') +# db_repl_meta=open(f_repl_meta_sql.name, 'r') +# +# diffmeta = ''.join(difflib.unified_diff( +# db_main_meta.readlines(), +# db_repl_meta.readlines() +# )) +# db_main_meta.close() +# db_repl_meta.close() +# +# f_meta_diff=open( os.path.join(context['temp_directory'],'tmp_gh_6907_db_meta_diff.txt'), 'w', buffering = 0) +# f_meta_diff.write(diffmeta) +# flush_and_close( f_meta_diff ) +# +# # Following must issue only TWO rows: +# # UNEXPECTED METADATA DIFF.: -/* CREATE DATABASE 'localhost:[db_main]' ... */ +# # UNEXPECTED METADATA DIFF.: -/* CREATE DATABASE 'localhost:[db_repl]' ... */ +# # Only thes lines will be suppressed further (see subst. section): +# with open(f_meta_diff.name, 'r') as f: +# for line in f: +# if line[:1] in ('-', '+') and line[:3] not in ('---','+++'): +# print('UNEXPECTED METADATA DIFF.: ' + line) +# +# ###################### +# ### A C H T U N G ### +# ###################### +# # MANDATORY, OTHERWISE REPLICATION GETS STUCK ON SECOND RUN OF THIS TEST +# # WITH 'ERROR: Record format with length NN is not found for table TEST': +# runProgram('gfix', ['-sweep', 'localhost:' + db_repl]) +# runProgram('gfix', ['-sweep', 'localhost:' + db_main]) +# ####################### +# +# +# # cleanup: +# ########## +# cleanup( (f_sql_chk, f_sql_log, f_sql_err,f_clean_log,f_clean_err,f_main_meta_sql,f_repl_meta_sql,f_meta_diff) ) +# +#--- +act_1 = python_act('db_1', substitutions=substitutions_1) + +expected_stdout_1 = """ + POINT-1 FOUND message about replicated segment N 1. + + MAIN_ID -3 + MAIN_X 3333 + MAIN_ID -2 + MAIN_X + MAIN_ID -1 + MAIN_X 1111 + + REPL_ID -3 + REPL_X 3333 + REPL_ID -2 + REPL_X + REPL_ID -1 + REPL_X 1111 + + Start removing objects + Finish. Total objects removed + POINT-2 FOUND message about replicated segment N 2. +""" + +@pytest.mark.version('>=4.0.1') +@pytest.mark.platform('Windows') +def test_1(act_1: Action): + pytest.fail("Test not IMPLEMENTED") + + diff --git a/tests/functional/replication/test_updating_blob_with_empty_string_stops_replication.py b/tests/functional/replication/test_updating_blob_with_empty_string_stops_replication.py new file mode 100644 index 00000000..24166119 --- /dev/null +++ b/tests/functional/replication/test_updating_blob_with_empty_string_stops_replication.py @@ -0,0 +1,359 @@ +#coding:utf-8 +# +# id: functional.replication.updating_blob_with_empty_string_stops_replication +# title: Replication gets stuck due to "Blob xxx.xx is not found for table xxx" error +# decription: +# https://github.com/FirebirdSQL/firebird/issues/6795 +# +# Test creates table with blob column and performs trivial scenario: +# insert into test(id, b) values(1, null); +# update test set b = '' where id = 1; +# After this we do connect and query ID of last generated segment by querying REPLICATION_SEQUENCE variable +# from SYSTEM context namespace. +# +# Then we wait until replica becomes actual to master, and this delay will last no more then threshold +# that is defined by MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG variable (measured in seconds). +# During this delay, we check every second for replication log and search there line with number of last generated +# segment (which was replicated and deleting finally). +# We can assume that replication finished OK only when such line is found see ('POINT-1'). +# +# Then we invoke ISQL with executing auxiliary script for drop all DB objects on master (with '-nod' command switch). +# After all objects will be dropped, we have to wait again until replica becomes actual with master (see 'POINT-2'). +# +# Finally, we extract metadata for master and replica and compare them (see 'f_meta_diff'). +# The only difference in metadata must be 'CREATE DATABASE' statement with different DB names - we suppress it, +# thus metadata difference must not be issued. +# +# ################ +# ### N O T E ### +# ################ +# Test assumes that master and replica DB have been created beforehand. +# Also, it assumes that %FB_HOME% +# eplication.conf has been prepared with apropriate parameters for replication. +# Particularly, name of directories and databases must have info about checked FB major version and ServerMode. +# * verbose = true // in order to find out line with message that required segment was replicated +# * section for master database with specified parameters: +# journal_directory = "!fbt_repo! mp +# b-replication.!fb_major!.!server_mode!.journal" +# journal_archive_directory = "!fbt_repo! mp +# b-replication.!fb_major!.!server_mode!.archive" +# journal_archive_command = "copy $(pathname) $(archivepathname)" +# journal_archive_timeout = 10 +# * section for replica database with specified parameter: +# journal_source_directory = "!fbt_repo! mp +# b-replication.!fb_major!.!server_mode!.archive" +# +# Master and replica databases must be created in "%FBT_REPO% mp" directory and have names like these: +# 'fbt-main.fb40.SS.fdb'; 'fbt-repl.fb40.SS.fdb'; - for FB 4.x ('SS' = Super; 'CS' = Classic) +# 'fbt-main.fb50.SS.fdb'; 'fbt-repl.fb50.SS.fdb'; - for FB 5.x ('SS' = Super; 'CS' = Classic) +# NB: fixed numeric value ('40' or '50') must be used for any minor FB version (4.0; 4.0.1; 4.1; 5.0; 5.1 etc) +# +# These two databases must NOT be dropped in any of tests related to replication! +# They are created and dropped in the batch scenario which prepares FB instance to be checked for each ServerMode +# and make cleanup after it, i.e. when all tests will be completed. +# +# NB. Currently this task presents only in Windows batch, thus test has attribute platform = 'Windows'. +# +# Temporary comment. For debug purpoces: +# 1) find out SUFFIX of the name of FB service which is to be tested (e.g. 'DefaultInstance', '40SS' etc); +# 2) copy file %fbt-repo% ests +# unctional abloidatches\\setup-fb-for-replication.bat.txt +# to some place and rename it "*.bat"; +# 3) open this .bat in editor and asjust value of 'fbt_repo' variable; +# 4) run: setup-fb-for-replication.bat [SUFFIX_OF_FB_SERVICE] +# where SUFFIX_OF_FB_SERVICE is ending part of FB service which you want to check: +# DefaultInstance ; 40ss ; 40cs ; 50ss ; 50cs etc +# 5) batch 'setup-fb-for-replication.bat' will: +# * stop selected FB instance +# * create test databases (in !fbt_repo! mp\\); +# * prepare journal/archive sub-folders for replication (also in !fbt_repo! mp\\); +# * replace %fb_home% +# eplication.conf with apropriate +# * start selected FB instance +# 6) run this test (FB instance will be already launched by setup-fb-for-replication.bat): +# %fpt_repo% +# bt-run2.bat dblevel-triggers-must-not-fire-on-replica.fbt 50ss, etc +# +# Confirmed bug on 4.0.0.2465, got in replication.log: +# * Added 1 segment(s) to the processing queue +# * Segment 1 replication failure at offset 150 +# * Blob 128.480 is not found for table TEST +# After this replication of segment 1 unable to continue and issues repeating messages about added segments. +# +# Checked on: +# 4.0.0.2479 SS; 4.0.1.2519 CS; 5.0.0.82 SS/CS. +# +# tracker_id: +# min_versions: ['4.0'] +# versions: 4.0 +# qmid: None + +import pytest +from firebird.qa import db_factory, python_act, Action + +# version: 4.0 +# resources: None + +substitutions_1 = [('Start removing objects in:.*', 'Start removing objects'), ('Finish. Total objects removed: [1-9]\\d*', 'Finish. Total objects removed'), ('.* CREATE DATABASE .*', '')] + +init_script_1 = """""" + +db_1 = db_factory(sql_dialect=3, init=init_script_1) + +# test_script_1 +#--- +# +# import os +# import subprocess +# import re +# import difflib +# import shutil +# import time +# +# os.environ["ISC_USER"] = user_name +# os.environ["ISC_PASSWORD"] = user_password +# +# ##################################### +# MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG = 65 +# ##################################### +# +# svc = fdb.services.connect(host='localhost', user=user_name, password=user_password) +# FB_HOME = svc.get_home_directory() +# svc.close() +# +# engine = db_conn.engine_version # 4.0; 4.1; 5.0 etc -- type float +# fb_major = 'fb' + str(engine)[:1] + '0' # 'fb40'; 'fb50' +# +# cur = db_conn.cursor() +# cur.execute("select rdb$config_value from rdb$config where upper(rdb$config_name) = upper('ServerMode')") +# server_mode = 'XX' +# for r in cur: +# if r[0] == 'Super': +# server_mode = 'SS' +# elif r[0] == 'SuperClassic': +# server_mode = 'SC' +# elif r[0] == 'Classic': +# server_mode = 'CS' +# cur.close() +# +# # 'fbt-main.fb50.ss.fdb' etc: +# db_main = os.path.join( context['temp_directory'], 'fbt-main.' + fb_major + '.' + server_mode + '.fdb' ) +# db_repl = db_main.replace( 'fbt-main.', 'fbt-repl.') +# +# # Folders for journalling and archieving segments. +# repl_journal_dir = os.path.join( context['temp_directory'], 'fb-replication.' + fb_major + '.' + server_mode + '.journal' ) +# repl_archive_dir = os.path.join( context['temp_directory'], 'fb-replication.' + fb_major + '.' + server_mode + '.archive' ) +# +# db_conn.close() +# +# #-------------------------------------------- +# +# def flush_and_close( file_handle ): +# # https://docs.python.org/2/library/os.html#os.fsync +# # If you're starting with a Python file object f, +# # first do f.flush(), and +# # then do os.fsync(f.fileno()), to ensure that all internal buffers associated with f are written to disk. +# global os +# +# file_handle.flush() +# if file_handle.mode not in ('r', 'rb') and file_handle.name != os.devnull: +# # otherwise: "OSError: [Errno 9] Bad file descriptor"! +# os.fsync(file_handle.fileno()) +# file_handle.close() +# +# #-------------------------------------------- +# +# def cleanup( f_names_list ): +# global os +# for i in range(len( f_names_list )): +# if type(f_names_list[i]) == file: +# del_name = f_names_list[i].name +# elif type(f_names_list[i]) == str: +# del_name = f_names_list[i] +# else: +# print('Unrecognized type of element:', f_names_list[i], ' - can not be treated as file.') +# del_name = None +# +# if del_name and os.path.isfile( del_name ): +# os.remove( del_name ) +# +# #-------------------------------------------- +# +# def wait_for_data_in_replica( fb_home, max_allowed_time_for_wait, db_main, prefix_msg = '' ): +# +# global re +# global difflib +# global time +# +# replold_lines = [] +# with open( os.path.join(fb_home,'replication.log'), 'r') as f: +# replold_lines = f.readlines() +# +# con = fdb.connect( dsn = 'localhost:' + db_main, no_db_triggers = 1) +# cur = con.cursor() +# cur.execute("select rdb$get_context('SYSTEM','REPLICATION_SEQUENCE') from rdb$database") +# for r in cur: +# last_generated_repl_segment = r[0] +# cur.close() +# con.close() +# +# #print('last_generated_repl_segment:', last_generated_repl_segment) +# +# # VERBOSE: Segment 1 (2582 bytes) is replicated in 1 second(s), deleting the file +# p=re.compile( '\\+\\s+verbose:\\s+segment\\s+%(last_generated_repl_segment)s\\s+\\(\\d+\\s+bytes\\)\\s+is\\s+replicated.*deleting' % locals(), re.IGNORECASE) +# +# found_required_message = False +# for i in range(0,max_allowed_time_for_wait): +# time.sleep(1) +# +# # Get content of fb_home replication.log _after_ isql finish: +# f_repllog_new = open( os.path.join(fb_home,'replication.log'), 'r') +# diff_data = difflib.unified_diff( +# replold_lines, +# f_repllog_new.readlines() +# ) +# f_repllog_new.close() +# +# for k,d in enumerate(diff_data): +# if p.search(d): +# print( (prefix_msg + ' ' if prefix_msg else '') + 'FOUND message about replicated segment.' ) +# found_required_message = True +# break +# +# if found_required_message: +# break +# +# if not found_required_message: +# print('UNEXPECTED RESULT: no message about replicated segment for %d seconds.' % max_allowed_time_for_wait) +# +# #-------------------------------------------- +# +# sql_ddl = ''' set bail on; +# set list on; +# +# recreate table test(id int primary key, b blob); +# insert into test(id, b) values(1, null); +# update test set b = '' where id = 1; +# commit; +# +# select rdb$get_context('SYSTEM','REPLICATION_SEQUENCE') as last_generated_repl_segment from rdb$database; +# quit; +# ''' % locals() +# +# +# f_sql_chk = open( os.path.join(context['temp_directory'],'tmp_gh_6795_test.sql'), 'w') +# f_sql_chk.write(sql_ddl) +# flush_and_close( f_sql_chk ) +# +# f_sql_log = open( ''.join( (os.path.splitext(f_sql_chk.name)[0], '.log' ) ), 'w') +# f_sql_err = open( ''.join( (os.path.splitext(f_sql_chk.name)[0], '.err' ) ), 'w') +# subprocess.call( [ context['isql_path'], 'localhost:' + db_main, '-i', f_sql_chk.name ], stdout = f_sql_log, stderr = f_sql_err) +# flush_and_close( f_sql_log ) +# flush_and_close( f_sql_err ) +# +# last_generated_repl_segment = 0 +# +# with open(f_sql_err.name,'r') as f: +# for line in f: +# print('UNEXPECTED STDERR in initial SQL: ' + line) +# MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG = 0 +# +# if MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG: # ==> initial SQL script finished w/o errors +# +# ############################################################################## +# ### W A I T U N T I L R E P L I C A B E C O M E S A C T U A L ### +# ############################################################################## +# wait_for_data_in_replica( FB_HOME, MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG, db_main, 'POINT-1' ) +# +# runProgram('isql', ['localhost:' + db_repl, '-nod'], "set list on; select count(*) as empty_string_blob_on_replica from test where b = '' and id = 1;") +# +# # return initial state of master DB: +# # remove all DB objects (tables, views, ...): +# # -------------------------------------------- +# sql_clean_ddl = os.path.join(context['files_location'],'drop-all-db-objects.sql') +# +# f_clean_log=open( os.path.join(context['temp_directory'],'tmp_gh_6795_drop-all-db-objects.log'), 'w') +# f_clean_err=open( ''.join( ( os.path.splitext(f_clean_log.name)[0], '.err') ), 'w') +# subprocess.call( [context['isql_path'], 'localhost:' + db_main, '-q', '-nod', '-i', sql_clean_ddl], stdout=f_clean_log, stderr=f_clean_err ) +# flush_and_close(f_clean_log) +# flush_and_close(f_clean_err) +# +# with open(f_clean_err.name,'r') as f: +# for line in f: +# print('UNEXPECTED STDERR in cleanup SQL: ' + line) +# MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG = 0 +# +# with open(f_clean_log.name,'r') as f: +# for line in f: +# # show number of dropped objects +# print(line) +# +# if MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG: # ==> initial SQL script finished w/o errors +# +# ############################################################################## +# ### W A I T U N T I L R E P L I C A B E C O M E S A C T U A L ### +# ############################################################################## +# wait_for_data_in_replica( FB_HOME, MAX_TIME_FOR_WAIT_SEGMENT_IN_LOG, db_main, 'POINT-2' ) +# +# f_main_meta_sql=open( os.path.join(context['temp_directory'],'tmp_gh_6795_db_main_meta.sql'), 'w') +# subprocess.call( [context['isql_path'], 'localhost:' + db_main, '-q', '-nod', '-ch', 'utf8', '-x'], stdout=f_main_meta_sql, stderr=subprocess.STDOUT ) +# flush_and_close( f_main_meta_sql ) +# +# f_repl_meta_sql=open( os.path.join(context['temp_directory'],'tmp_gh_6795_db_repl_meta.sql'), 'w') +# subprocess.call( [context['isql_path'], 'localhost:' + db_repl, '-q', '-nod', '-ch', 'utf8', '-x'], stdout=f_repl_meta_sql, stderr=subprocess.STDOUT ) +# flush_and_close( f_repl_meta_sql ) +# +# db_main_meta=open(f_main_meta_sql.name, 'r') +# db_repl_meta=open(f_repl_meta_sql.name, 'r') +# +# diffmeta = ''.join(difflib.unified_diff( +# db_main_meta.readlines(), +# db_repl_meta.readlines() +# )) +# db_main_meta.close() +# db_repl_meta.close() +# +# f_meta_diff=open( os.path.join(context['temp_directory'],'tmp_gh_6795_db_meta_diff.txt'), 'w', buffering = 0) +# f_meta_diff.write(diffmeta) +# flush_and_close( f_meta_diff ) +# +# # Following must issue only TWO rows: +# # UNEXPECTED METADATA DIFF.: -/* CREATE DATABASE 'localhost:[db_main]' ... */ +# # UNEXPECTED METADATA DIFF.: -/* CREATE DATABASE 'localhost:[db_repl]' ... */ +# # Only thes lines will be suppressed further (see subst. section): +# with open(f_meta_diff.name, 'r') as f: +# for line in f: +# if line[:1] in ('-', '+') and line[:3] not in ('---','+++'): +# print('UNEXPECTED METADATA DIFF.: ' + line) +# +# ###################### +# ### A C H T U N G ### +# ###################### +# # MANDATORY, OTHERWISE REPLICATION GETS STUCK ON SECOND RUN OF THIS TEST +# # WITH 'ERROR: Record format with length NN is not found for table TEST': +# runProgram('gfix', ['-sweep', 'localhost:' + db_repl]) +# runProgram('gfix', ['-sweep', 'localhost:' + db_main]) +# ####################### +# +# +# # cleanup: +# ########## +# cleanup( (f_sql_chk, f_sql_log, f_sql_err,f_clean_log,f_clean_err,f_main_meta_sql,f_repl_meta_sql,f_meta_diff) ) +# +#--- +act_1 = python_act('db_1', substitutions=substitutions_1) + +expected_stdout_1 = """ + POINT-1 FOUND message about replicated segment. + EMPTY_STRING_BLOB_ON_REPLICA 1 + Start removing objects + Finish. Total objects removed + POINT-2 FOUND message about replicated segment. +""" + +@pytest.mark.version('>=4.0') +@pytest.mark.platform('Windows') +def test_1(act_1: Action): + pytest.fail("Test not IMPLEMENTED") + + diff --git a/tests/functional/role/create/test_01.py b/tests/functional/role/create/test_01.py index b3816b33..a71e6e33 100644 --- a/tests/functional/role/create/test_01.py +++ b/tests/functional/role/create/test_01.py @@ -30,29 +30,29 @@ test_script_1 = """ commit; set list on; select * from rdb$roles order by rdb$role_name; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ -RDB$ROLE_NAME RDB$ADMIN -RDB$OWNER_NAME SYSDBA -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 1 -RDB$SECURITY_CLASS - -RDB$ROLE_NAME TEST -RDB$OWNER_NAME SYSDBA -RDB$DESCRIPTION -RDB$SYSTEM_FLAG 0 -RDB$SECURITY_CLASS SQL$414 + RDB$ROLE_NAME RDB$ADMIN + RDB$OWNER_NAME SYSDBA + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 1 + RDB$SECURITY_CLASS SQLnnnn + + RDB$ROLE_NAME TEST + RDB$OWNER_NAME SYSDBA + RDB$DESCRIPTION + RDB$SYSTEM_FLAG 0 + RDB$SECURITY_CLASS SQLnnnn """ @pytest.mark.version('>=3.0,<4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout # version: 4.0 # resources: None @@ -68,7 +68,7 @@ test_script_2 = """ commit; set list on; select * from rdb$roles order by rdb$role_name; - """ +""" act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) @@ -86,11 +86,11 @@ expected_stdout_2 = """ RDB$SYSTEM_FLAG 0 RDB$SECURITY_CLASS SQLnnnn RDB$SYSTEM_PRIVILEGES 0000000000000000 - """ +""" @pytest.mark.version('>=4.0') def test_2(act_2: Action): act_2.expected_stdout = expected_stdout_2 act_2.execute() - assert act_2.clean_expected_stdout == act_2.clean_stdout + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/role/create/test_02.py b/tests/functional/role/create/test_02.py index 67911274..cd4bf854 100644 --- a/tests/functional/role/create/test_02.py +++ b/tests/functional/role/create/test_02.py @@ -32,12 +32,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42000 unsuccessful metadata update -CREATE ROLE TEST failed -SQL role TEST already exists - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/services/test_role_in_service_attachment.py b/tests/functional/services/test_role_in_service_attachment.py index fc4e7b54..b32ba996 100644 --- a/tests/functional/services/test_role_in_service_attachment.py +++ b/tests/functional/services/test_role_in_service_attachment.py @@ -12,7 +12,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -209,17 +209,15 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########### # cleanup( ( f_sql_cmd, f_prepare_log, f_trc_log, f_trc_err, f_trc_cfg, f_trc_lst ) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ EXPECTED output found in the trace log - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/services/test_user_management.py b/tests/functional/services/test_user_management.py index 2946ab4f..2813b933 100644 --- a/tests/functional/services/test_user_management.py +++ b/tests/functional/services/test_user_management.py @@ -29,7 +29,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 2.5.8 # resources: None @@ -92,9 +92,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # print('Removing user.') # svc_con.remove_user(u01) # print('Done.') -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ Adding user. @@ -107,11 +106,10 @@ expected_stdout_1 = """ Done. Removing user. Done. - """ +""" @pytest.mark.version('>=2.5.8') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/session/test_alter_session_reset.py b/tests/functional/session/test_alter_session_reset.py index 6ca6ad40..3d244882 100644 --- a/tests/functional/session/test_alter_session_reset.py +++ b/tests/functional/session/test_alter_session_reset.py @@ -210,7 +210,7 @@ test_script_1 = """ drop user tmp$user4test; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -255,7 +255,7 @@ expected_stdout_1 = """ CONTEXT_VAR_NAME CONTEXT_VAR_VALUE - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 22003 Decimal float overflow. The exponent of a result is greater than the magnitude allowed. @@ -277,13 +277,14 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 28000 no permission for SELECT access to TABLE GTT_TEST -Effective user is TMP$USER4TEST - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/session/test_alter_session_reset_allow_2pc_prepared.py b/tests/functional/session/test_alter_session_reset_allow_2pc_prepared.py index dcc10752..6bb52ee3 100644 --- a/tests/functional/session/test_alter_session_reset_allow_2pc_prepared.py +++ b/tests/functional/session/test_alter_session_reset_allow_2pc_prepared.py @@ -35,7 +35,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -149,14 +149,12 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # cleanup( (DBNAME_A, DBNAME_B) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/session/test_alter_session_reset_clear_gtt.py b/tests/functional/session/test_alter_session_reset_clear_gtt.py index a1d1bf82..b9226e99 100644 --- a/tests/functional/session/test_alter_session_reset_clear_gtt.py +++ b/tests/functional/session/test_alter_session_reset_clear_gtt.py @@ -69,7 +69,7 @@ test_script_1 = """ select * from gtt_test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -77,11 +77,11 @@ expected_stdout_1 = """ ID 1 Records affected: 1 Records affected: 0 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/session/test_alter_session_reset_clear_timeouts.py b/tests/functional/session/test_alter_session_reset_clear_timeouts.py index 1f3e54ce..4af5a49d 100644 --- a/tests/functional/session/test_alter_session_reset_clear_timeouts.py +++ b/tests/functional/session/test_alter_session_reset_clear_timeouts.py @@ -71,7 +71,7 @@ test_script_1 = """ ,rdb$get_context('SYSTEM','STATEMENT_TIMEOUT') as statement_timeout_after_reset from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -81,11 +81,11 @@ expected_stdout_1 = """ SESSION_IDLE_TIMEOUT_AFTER_RESET 0 STATEMENT_TIMEOUT_AFTER_RESET 0 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/session/test_alter_session_reset_decfloat.py b/tests/functional/session/test_alter_session_reset_decfloat.py index 6c1d080c..a042507f 100644 --- a/tests/functional/session/test_alter_session_reset_decfloat.py +++ b/tests/functional/session/test_alter_session_reset_decfloat.py @@ -96,7 +96,7 @@ test_script_1 = """ select a * b / c as "after_reset: check round result" from test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -112,17 +112,18 @@ expected_stdout_1 = """ after_reset: check datatype 1234.5678 after_reset: check round result 80.445 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 22012 Decimal float divide by zero. The code attempted to divide a DECFLOAT value by zero. - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/session/test_alter_session_reset_raise_if_open_tx.py b/tests/functional/session/test_alter_session_reset_raise_if_open_tx.py index 48930ef9..d2933b00 100644 --- a/tests/functional/session/test_alter_session_reset_raise_if_open_tx.py +++ b/tests/functional/session/test_alter_session_reset_raise_if_open_tx.py @@ -23,7 +23,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -58,9 +58,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # db_conn.close() # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ Error while executing SQL statement: @@ -69,11 +68,10 @@ expected_stdout_1 = """ - There are open transactions (3 active) -901 335545206 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/session/test_alter_session_reset_remove_context_vars.py b/tests/functional/session/test_alter_session_reset_remove_context_vars.py index c52fdaf4..b8b86776 100644 --- a/tests/functional/session/test_alter_session_reset_remove_context_vars.py +++ b/tests/functional/session/test_alter_session_reset_remove_context_vars.py @@ -70,18 +70,18 @@ test_script_1 = """ select rdb$get_context('USER_SESSION', 'TEST_VAR') as session_level_context_var_after_reset from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ SESSION_LEVEL_CONTEXT_VAR_BEFORE_RESET 123 SESSION_LEVEL_CONTEXT_VAR_AFTER_RESET - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/session/test_alter_session_reset_restore_role.py b/tests/functional/session/test_alter_session_reset_restore_role.py index 9d1a47b5..c5b80819 100644 --- a/tests/functional/session/test_alter_session_reset_restore_role.py +++ b/tests/functional/session/test_alter_session_reset_restore_role.py @@ -82,7 +82,7 @@ test_script_1 = """ -------------------- select * from v_test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -95,11 +95,11 @@ expected_stdout_1 = """ WHO_AMI SYSDBA WHATS_MY_ROLE BOSS - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/session/test_alter_session_reset_rollback.py b/tests/functional/session/test_alter_session_reset_rollback.py index bae6d5d8..ab48a311 100644 --- a/tests/functional/session/test_alter_session_reset_rollback.py +++ b/tests/functional/session/test_alter_session_reset_rollback.py @@ -68,23 +68,24 @@ test_script_1 = """ -------------------- set count on; select * from test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 - """ +""" expected_stderr_1 = """ Session was reset with warning(s) -Transaction is rolled back due to session reset, all changes are lost - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/session/test_alter_session_reset_start_new_tx.py b/tests/functional/session/test_alter_session_reset_start_new_tx.py index 658f9b8f..a9b82049 100644 --- a/tests/functional/session/test_alter_session_reset_start_new_tx.py +++ b/tests/functional/session/test_alter_session_reset_start_new_tx.py @@ -136,7 +136,7 @@ test_script_1 = """ ,count(distinct trn_auto_undo) as trn_auto_undo_distinct_cnt from test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -146,11 +146,11 @@ expected_stdout_1 = """ TRN_LOCK_TIMEOUT_DISTINCT_CNT 1 TRN_READ_DISTINCT_CNT 1 TRN_AUTO_UNDO_DISTINCT_CNT 1 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/session/test_ext_conn_pool_01.py b/tests/functional/session/test_ext_conn_pool_01.py index eeb7d629..248eef28 100644 --- a/tests/functional/session/test_ext_conn_pool_01.py +++ b/tests/functional/session/test_ext_conn_pool_01.py @@ -29,7 +29,7 @@ # SecurityDatabase = tmp_ecp_01 # RemoteAccess = true # } -# File $FB_HOME/security4.fdb is copied to the . +# File $FB_HOME/securityN.fdb is copied to the . # # After this test launches new Firebird instance *as application* (see async. call of Popen()) and make # some actions with just created test DB (alias = tmp_ecp_01). Because this DB is self-secutity, we can @@ -76,6 +76,12 @@ # # Checked on 4.0.0.2235, FB instances were launched as 'Super' and 'SuperClassic'. Time: ~52s. # +# 22.05.2021: definition of full path and name to security.db was wrong because it supposed that FB major version +# corresponds to numeric suffix of security database (FB 3.x --> security3.fdb; FB 4.x --> security4.fdb). +# But in major version FB 5.x currently remains to use security4.fdb. +# Proper way is either to use Services API (call to get_security_database_path()) or get this info from fbtest +# built-in context variable context['isc4_path']. +# Checked on 5.0.0.47 (Linux, Windows). # # tracker_id: # min_versions: ['4.0'] @@ -83,7 +89,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -158,9 +164,12 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # # ITER_LOOP_CNT = 3 # -# -# FB_HOME = services.connect(host='localhost', user=user_name, password=user_password).get_home_directory() +# svc = fdb.services.connect(host='localhost', user=user_name, password=user_password) +# FB_HOME = svc.get_home_directory() # FB_BINS = os.path.join( FB_HOME, 'bin'+os.sep if platform.system() == 'Linux' else '' ) +# svc.close() +# SEC_FDB = context['isc4_path'] +# # # #-------------------------------------------- # @@ -277,11 +286,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # #------------------------------------------------- # -# fb_vers = str(db_conn.engine_version)[:1] # character for security.db file: engine = 4.0 --> '4' # db_conn.close() # -# sec_db = os.path.join( FB_HOME, 'security' + fb_vers+ '.fdb') -# # fdb_test = os.path.join(context['temp_directory'],'ext-conn-pool-01.fdb') # cleanup( (fdb_test,) ) # @@ -293,7 +299,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # dbconf_cur = os.path.join(FB_HOME, 'databases.conf') # dbconf_bak = os.path.join(context['temp_directory'], 'databases_'+dts+'.bak') # -# shutil.copy2( sec_db, fdb_test ) +# shutil.copy2( SEC_FDB, fdb_test ) # f_init_err = 0 # # ################################# @@ -683,9 +689,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # cleanup( [ i.name for i in f_list ] + [fdb_test] ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ SRVMODE WHO ATT ID EVT ACTIVE_CNT IDLE_CNT @@ -768,11 +773,10 @@ expected_stdout_1 = """ SuperClassic RARE 3 21 BYE 0 0 Records affected: 76 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/shadow/test_create_01.py b/tests/functional/shadow/test_create_01.py index bde87451..6556fcc9 100644 --- a/tests/functional/shadow/test_create_01.py +++ b/tests/functional/shadow/test_create_01.py @@ -45,7 +45,7 @@ test_script_1 = """ ,rdb$file_flags as file_flags ,rdb$shadow_number as shadow_number from rdb$files; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -57,11 +57,11 @@ expected_stdout_1 = """ FILE_FLAGS 1 SHADOW_NUMBER 1 Records affected: 1 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/shadow/test_create_02.py b/tests/functional/shadow/test_create_02.py index 23174673..abb626f2 100644 --- a/tests/functional/shadow/test_create_02.py +++ b/tests/functional/shadow/test_create_02.py @@ -38,7 +38,7 @@ test_script_1 = """ ,rdb$file_flags as file_flags ,rdb$shadow_number as shadow_number from rdb$files; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -58,11 +58,11 @@ expected_stdout_1 = """ SHADOW_NUMBER 1 Records affected: 2 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/syspriv/test_access_any_object.py b/tests/functional/syspriv/test_access_any_object.py index bb5e90f5..0d3c3f5d 100644 --- a/tests/functional/syspriv/test_access_any_object.py +++ b/tests/functional/syspriv/test_access_any_object.py @@ -111,7 +111,7 @@ test_script_1 = """ connect '$(DSN)' user sysdba password 'masterkey'; drop user u01; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -142,19 +142,20 @@ expected_stdout_1 = """ Records affected: 0 Records affected: 1 Records affected: 1 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 23000 violation of FOREIGN KEY constraint "TDETL_FK" on table "TDETL" -Foreign key reference target does not exist -Problematic key value is ("PID" = 2) - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/syspriv/test_access_shutdown_database.py b/tests/functional/syspriv/test_access_shutdown_database.py index b3650bbb..55b8e90b 100644 --- a/tests/functional/syspriv/test_access_shutdown_database.py +++ b/tests/functional/syspriv/test_access_shutdown_database.py @@ -19,7 +19,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -272,9 +272,16 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # runProgram('isql',[dsn, '-user', user_name, '-pas', user_password], 'drop user u01; commit;') # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) + +expected_stderr_1 = """ + Statement failed, SQLSTATE = 42000 + Execute statement error at attach : + 335544528 : database shutdown + Data source : Firebird::localhost: + -At block line: 4, col: 9 +""" expected_stdout_1 = """ WHO_AMI U01 @@ -299,18 +306,10 @@ expected_stdout_1 = """ tmp_dbshut_u01.err : no permission for shutdown access to database tmp_online_u01.err : no permission for bring online access to database - """ -expected_stderr_1 = """ - Statement failed, SQLSTATE = 42000 - Execute statement error at attach : - 335544528 : database shutdown - Data source : Firebird::localhost: - -At block line: 4, col: 9 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/syspriv/test_change_header_settings.py b/tests/functional/syspriv/test_change_header_settings.py index 3912a639..e4c29947 100644 --- a/tests/functional/syspriv/test_change_header_settings.py +++ b/tests/functional/syspriv/test_change_header_settings.py @@ -12,7 +12,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -197,9 +197,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # cleanup( (f_hdr_props_log,) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 @@ -216,11 +215,10 @@ expected_stdout_1 = """ MON$SQL_DIALECT 1 MON$FORCED_WRITES 0 Records affected: 1 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/syspriv/test_change_mapping_rules.py b/tests/functional/syspriv/test_change_mapping_rules.py new file mode 100644 index 00000000..f30bfc74 --- /dev/null +++ b/tests/functional/syspriv/test_change_mapping_rules.py @@ -0,0 +1,85 @@ +#coding:utf-8 +# +# id: functional.syspriv.change_mapping_rules +# title: Check ability to manage auth mappings +# decription: +# Verify ability to issue CREATE / ALTER / DROP MAPPING by non-sysdba user. +# Checked on 5.0.0.133 SS/CS, 4.0.1.2563 SS/CS +# +# tracker_id: +# min_versions: ['4.0.0'] +# versions: 4.0 +# qmid: None + +import pytest +from firebird.qa import db_factory, isql_act, Action + +# version: 4.0 +# resources: None + +substitutions_1 = [('.*Global mapping.*', '')] + +init_script_1 = """""" + +db_1 = db_factory(sql_dialect=3, init=init_script_1) + +test_script_1 = """ + set wng off; + -- set bail on; + set list on; + + -- NB: without 'grant admin role' it is unable to create GLOBAL mapping: + -- Statement failed, SQLSTATE = 28000 / ... / -CREATE OR ALTER MAPPING ... failed + -- -Unable to perform operation /-System privilege CHANGE_MAPPING_RULES is missing + create or alter + user john_smith_mapping_manager + password '123' + grant admin role --- [ !!! ] + ; + + set term ^; + execute block as + begin + execute statement 'drop role tmp_role_for_change_mapping'; + when any do begin end + end^ + set term ;^ + + create role tmp_role_for_change_mapping set system privileges to CHANGE_MAPPING_RULES; + commit; + + grant default tmp_role_for_change_mapping to user john_smith_mapping_manager; + commit; + + connect '$(DSN)' user john_smith_mapping_manager password '123'; -- role tmp_role_for_change_mapping; + + create or alter mapping tmp_syspriv_local_map using plugin srp from any user to user; + create or alter global mapping tmp_syspriv_global_map using plugin srp from any user to user; + commit; + + show mapping; + + drop global mapping tmp_syspriv_global_map; + drop mapping tmp_syspriv_local_map; + commit; + + connect '$(DSN)' user sysdba password 'masterkey'; + drop user john_smith_mapping_manager; + drop role tmp_role_for_change_mapping; + commit; +""" + +act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) + +expected_stdout_1 = """ + TMP_SYSPRIV_LOCAL_MAP USING PLUGIN SRP FROM ANY USER TO USER + *** Global mapping *** + TMP_SYSPRIV_GLOBAL_MAP USING PLUGIN SRP FROM ANY USER TO USER +""" + +@pytest.mark.version('>=4.0') +def test_1(act_1: Action): + act_1.expected_stdout = expected_stdout_1 + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout + diff --git a/tests/functional/syspriv/test_change_shutdown_mode.py b/tests/functional/syspriv/test_change_shutdown_mode.py index 03c4d0e0..3c73cb01 100644 --- a/tests/functional/syspriv/test_change_shutdown_mode.py +++ b/tests/functional/syspriv/test_change_shutdown_mode.py @@ -11,7 +11,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -199,9 +199,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # Cleanup: # ########## # cleanup( (f_shutdown_log, f_dbheader_log, f_ret2online_log) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 @@ -215,11 +214,10 @@ expected_stdout_1 = """ RDB$SYSTEM_PRIVILEGES 2060000000000000 Records affected: 2 DB HEADER: ATTRIBUTES FORCE WRITE, FULL SHUTDOWN - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/syspriv/test_create_database.py b/tests/functional/syspriv/test_create_database.py new file mode 100644 index 00000000..e311b56c --- /dev/null +++ b/tests/functional/syspriv/test_create_database.py @@ -0,0 +1,147 @@ +#coding:utf-8 +# +# id: functional.syspriv.create_database +# title: Check ability to CREATE database by non-sysdba user who is granted with necessary system privilege. +# decription: +# Checked on 5.0.0.133 SS/CS; 4.0.1.2563 SS/CS. +# +# tracker_id: +# min_versions: ['4.0.0'] +# versions: 4.0 +# qmid: None + +import pytest +from firebird.qa import db_factory, python_act, Action + +# version: 4.0 +# resources: None + +substitutions_1 = [('DB_NAME.*FUNCTIONAL.SYSPRIV.CREATE_DATABASE.TMP', 'DB_NAME FUNCTIONAL.SYSPRIV.DROP_DATABASE.TMP')] + +init_script_1 = """ + set wng off; + set bail on; + set list on; + set count on; + + create or alter + user john_smith_db_creator + password '123' + grant admin role -------------- [ !!! ] NB: this must be specified! + using plugin Srp + ; + commit; + + set term ^; + execute block as + begin + execute statement 'drop role role_for_create_database'; + when any do begin end + end^ + set term ;^ + commit; + + create role role_for_create_database set system privileges to CREATE_DATABASE; + commit; + grant default role_for_create_database to user john_smith_db_creator; + commit; + """ + +db_1 = db_factory(sql_dialect=3, init=init_script_1) + +# test_script_1 +#--- +# +# import os +# import subprocess +# import time +# +# db_pref = os.path.splitext(db_conn.database_name)[0] +# db_conn.close() +# +# #-------------------------------------------- +# +# def flush_and_close( file_handle ): +# # https://docs.python.org/2/library/os.html#os.fsync +# # If you're starting with a Python file object f, +# # first do f.flush(), and +# # then do os.fsync(f.fileno()), to ensure that all internal buffers associated with f are written to disk. +# global os +# +# file_handle.flush() +# if file_handle.mode not in ('r', 'rb') and file_handle.name != os.devnull: +# # otherwise: "OSError: [Errno 9] Bad file descriptor"! +# os.fsync(file_handle.fileno()) +# file_handle.close() +# +# #-------------------------------------------- +# +# def cleanup( f_names_list ): +# global os +# for f in f_names_list: +# if type(f) == file: +# del_name = f.name +# elif type(f) == str: +# del_name = f +# else: +# print('Unrecognized type of element:', f, ' - can not be treated as file.') +# del_name = None +# +# if del_name and os.path.isfile( del_name ): +# os.remove( del_name ) +# +# #-------------------------------------------- +# +# fdb_test = db_pref+'.tmp' +# +# cleanup( fdb_test, ) +# +# # Check that non-sysdba user can connect and DROP database +# ####### +# sql_chk=''' +# set list on; +# +# create database 'localhost:%(fdb_test)s' user john_smith_db_creator password '123'; +# commit; +# +# select +# upper(mon$database_name) as db_name +# ,current_user as who_ami +# ,r.rdb$role_name +# ,rdb$role_in_use(r.rdb$role_name) as RDB_ROLE_IN_USE +# ,r.rdb$system_privileges +# from mon$database m cross join rdb$roles r; +# +# commit; +# +# connect 'localhost:%(fdb_test)s' user sysdba password 'masterkey'; +# drop user john_smith_db_creator using plugin Srp; +# commit; +# ''' % locals() +# +# runProgram('isql',['-q'], sql_chk) +# +# if not os.path.isfile(fdb_test): +# print('ERROR WHILE CREATE DATABASE: FILE NOT FOUND.') +# +# # Cleanup: +# ########## +# time.sleep(1) +# cleanup( (fdb_test,) ) +# +#--- +act_1 = python_act('db_1', substitutions=substitutions_1) + +expected_stdout_1 = """ + DB_NAME C:\\FBTESTING\\QA\\FBT-REPO\\TMP\\FUNCTIONAL.SYSPRIV.CREATE_DATABASE.TMP + WHO_AMI JOHN_SMITH_DB_CREATOR + RDB$ROLE_NAME RDB$ADMIN + RDB_ROLE_IN_USE + RDB$SYSTEM_PRIVILEGES FFFFFFFFFFFFFFFF +""" + +@pytest.mark.version('>=4.0') +def test_1(act_1: Action): + pytest.fail("Test not IMPLEMENTED") + + diff --git a/tests/functional/syspriv/test_create_privileged_roles.py b/tests/functional/syspriv/test_create_privileged_roles.py index 44e3b48e..3b08e5e3 100644 --- a/tests/functional/syspriv/test_create_privileged_roles.py +++ b/tests/functional/syspriv/test_create_privileged_roles.py @@ -68,7 +68,7 @@ test_script_1 = """ connect '$(DSN)' user sysdba password 'masterkey'; drop user u01; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -87,11 +87,11 @@ expected_stdout_1 = """ RDB$ROLE_NAME ROLE_FOR_USE_GRANTED_BY_CLAUSE RDB$ROLE_IN_USE RDB$SYSTEM_PRIVILEGES 0000100000000000 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/syspriv/test_create_user_types.py b/tests/functional/syspriv/test_create_user_types.py index 175a49e9..b04df709 100644 --- a/tests/functional/syspriv/test_create_user_types.py +++ b/tests/functional/syspriv/test_create_user_types.py @@ -24,7 +24,6 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ set wng off; set list on; - set count on; create or alter view v_check as select @@ -37,8 +36,8 @@ test_script_1 = """ grant select on v_check to public; commit; - create or alter user u01 password '123' revoke admin role; - revoke all on all from u01; + create or alter user dba_helper_create_usr_types password '123' revoke admin role; + revoke all on all from dba_helper_create_usr_types; commit; set term ^; @@ -53,10 +52,10 @@ test_script_1 = """ -- Add/change/delete non-system records in RDB$TYPES create role role_for_create_user_types set system privileges to CREATE_USER_TYPES; commit; - grant default role_for_create_user_types to user u01; + grant default role_for_create_user_types to user dba_helper_create_usr_types; commit; - connect '$(DSN)' user u01 password '123'; + connect '$(DSN)' user dba_helper_create_usr_types password '123'; select * from v_check; commit; @@ -94,26 +93,24 @@ test_script_1 = """ commit; connect '$(DSN)' user sysdba password 'masterkey'; - drop user u01; + drop user dba_helper_create_usr_types; drop role role_for_create_user_types; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ - WHO_AMI U01 + WHO_AMI DBA_HELPER_CREATE_USR_TYPES RDB$ROLE_NAME RDB$ADMIN RDB_ROLE_IN_USE RDB$SYSTEM_PRIVILEGES FFFFFFFFFFFFFFFF - WHO_AMI U01 + WHO_AMI DBA_HELPER_CREATE_USR_TYPES RDB$ROLE_NAME ROLE_FOR_CREATE_USER_TYPES RDB_ROLE_IN_USE RDB$SYSTEM_PRIVILEGES 0800000000000000 - Records affected: 2 - RDB$FIELD_NAME amount_avaliable RDB$TYPE -32767 RDB$TYPE_NAME stock_amount @@ -121,8 +118,6 @@ expected_stdout_1 = """ Total number of units that can be sold immediately to any customer RDB$SYSTEM_FLAG 0 - Records affected: 0 - RDB$FIELD_NAME RDB$TYPE -32768 RDB$TYPE_NAME stock_amount @@ -135,17 +130,18 @@ expected_stdout_1 = """ RDB$TYPE -32768 RDB$TYPE_NAME stock_amount RDB$SYSTEM_FLAG 0 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 42000 INSERT operation is not allowed for system table RDB$TYPES - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/syspriv/test_drop_database.py b/tests/functional/syspriv/test_drop_database.py index aecaebba..14484fc8 100644 --- a/tests/functional/syspriv/test_drop_database.py +++ b/tests/functional/syspriv/test_drop_database.py @@ -15,7 +15,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -152,9 +152,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # time.sleep(1) # cleanup( (fbk_name, fdb_test, f_backup_restore) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ DB_NAME FUNCTIONAL.SYSPRIV.DROP_DATABASE.TMP @@ -169,11 +168,10 @@ expected_stdout_1 = """ RDB_ROLE_IN_USE RDB$SYSTEM_PRIVILEGES 0004000000000000 Records affected: 2 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/syspriv/test_grant_revoke_any_ddl_right.py b/tests/functional/syspriv/test_grant_revoke_any_ddl_right.py new file mode 100644 index 00000000..55bcef07 --- /dev/null +++ b/tests/functional/syspriv/test_grant_revoke_any_ddl_right.py @@ -0,0 +1,364 @@ +#coding:utf-8 +# +# id: functional.syspriv.grant_revoke_any_ddl_right +# title: Check ability to grant right for issuing CREATE/ALTER/DROP statements. +# decription: +# Test creates user with name 'john_smith_ddl_grantor' and grants to him system privilege +# to allow another user to run any DDL statement, and also to revoke all privileges from +# this user. Name of another user (who will perform DDL): 'mike_adams_ddl_grantee'. +# +# After this, we connect as 'john_smith_ddl_grantor' and give all kinds of DDL rights +# for CREATE, ALTER and DROP objects to user 'mike_adams_ddl_grantee'. +# +# We then connect to database as 'mike_adams_ddl_grantee' and try to create all kind of +# database objects, then alter and drop them. No errors must occur here. +# +# Finally, we make connect as 'john_smith_ddl_grantor' and revoke from 'mike_adams_ddl_grantee' +# all grants. User'mike_adams_ddl_grantee' then makes connect and tries to CREATE any kind +# of DB objects. All of them must NOT be created and exception SQLSTATE = 42000 must raise. +# +# +# Checked on 5.0.0.139; 4.0.1.2568 +# +# tracker_id: +# min_versions: ['4.0.0'] +# versions: 4.0 +# qmid: None + +import pytest +from firebird.qa import db_factory, isql_act, Action + +# version: 4.0 +# resources: None + +substitutions_1 = [] + +init_script_1 = """""" + +db_1 = db_factory(sql_dialect=3, init=init_script_1) + +test_script_1 = """ + set wng off; + set bail on; + set list on; + + + create or alter user john_smith_ddl_grantor password '123' revoke admin role; + create or alter user mike_adams_ddl_grantee password '456' revoke admin role; + commit; + + set term ^; + execute block as + begin + execute statement 'drop role r_for_grant_revoke_any_ddl_right'; + when any do begin end + end^ + set term ;^ + commit; + + -- Add/change/delete non-system records in RDB$TYPES + create role r_for_grant_revoke_any_ddl_right set system privileges to GRANT_REVOKE_ANY_DDL_RIGHT; + commit; + grant default r_for_grant_revoke_any_ddl_right to user john_smith_ddl_grantor; + commit; + + connect '$(DSN)' user john_smith_ddl_grantor password '123'; + select current_user as who_am_i,r.rdb$role_name,rdb$role_in_use(r.rdb$role_name),r.rdb$system_privileges + from mon$database m cross join rdb$roles r; + commit; + + -- ### NOTE ### + -- We give this system privilege being connected as 'john_smith_ddl_grantor', NOT as SYSDBA! + grant alter any character set to mike_adams_ddl_grantee; + + grant create collation to mike_adams_ddl_grantee; + grant alter any collation to mike_adams_ddl_grantee; + grant drop any collation to mike_adams_ddl_grantee; + + grant create exception to mike_adams_ddl_grantee; + grant alter any exception to mike_adams_ddl_grantee; + grant drop any exception to mike_adams_ddl_grantee; + + grant create generator to mike_adams_ddl_grantee; + grant alter any generator to mike_adams_ddl_grantee; + grant drop any generator to mike_adams_ddl_grantee; + + grant create domain to mike_adams_ddl_grantee; + grant alter any domain to mike_adams_ddl_grantee; + grant drop any domain to mike_adams_ddl_grantee; + + grant create role to mike_adams_ddl_grantee; + grant alter any role to mike_adams_ddl_grantee; + grant drop any role to mike_adams_ddl_grantee; + + -- DDL operations for managing triggers and indices re-use table privileges. + -- Ability to add COMMENT on some object requires ALTER ANY privilege for this kind of objects. + grant create table to mike_adams_ddl_grantee; + grant alter any table to mike_adams_ddl_grantee; + grant drop any table to mike_adams_ddl_grantee; + + grant create view to mike_adams_ddl_grantee; + grant alter any view to mike_adams_ddl_grantee; + grant drop any view to mike_adams_ddl_grantee; + + grant create procedure to mike_adams_ddl_grantee; + grant alter any procedure to mike_adams_ddl_grantee; + grant drop any procedure to mike_adams_ddl_grantee; + + grant create function to mike_adams_ddl_grantee; + grant alter any function to mike_adams_ddl_grantee; + grant drop any function to mike_adams_ddl_grantee; + + grant create package to mike_adams_ddl_grantee; + grant alter any package to mike_adams_ddl_grantee; + grant drop any package to mike_adams_ddl_grantee; + + commit; + + -- this should give output with rdb$grantor = 'SYSDBA' despite that actual grantor was 'john_smith_ddl_grantor': + select * from rdb$user_privileges where rdb$relation_name=upper('test_u01') and rdb$user=upper('mike_adams_ddl_grantee'); + commit; + + connect '$(DSN)' user mike_adams_ddl_grantee password '456'; + --############################################################################ + --### v e r i f y r i g h t t o C R E A T E o b j e c t s ### + --############################################################################ + create collation coll_test for utf8 from unicode case insensitive; + create exception exc_test 'Invalud value: @1'; + create sequence gen_test; + create domain dm_test as int; + create role r_test; + create table table_test(id int, pid int, x int, constraint mtest_pk primary key(id), constraint m_test_fk foreign key(pid) references table_test(id)); + create index table_test_x_asc on table_test(x); + create trigger table_test_trg for table_test before insert sql security invoker as begin end; + create view v_table_test as select * from table_test; + set term ^; + create procedure sp_test(a_id int) returns(x int) as + begin + suspend; + end + ^ + create function fn_test returns int as + begin + return 1; + end + ^ + create package pg_test as + begin + procedure pg_sp1(a_id int); + function pg_fn1 returns int; + end + ^ + create package body pg_test as + begin + procedure pg_sp1(a_id int) as + begin + end + + function pg_fn1 returns int as + begin + return 1; + end + end + ^ + set term ;^ + commit; + + --################################################################################### + --### v e r i f y r i g h t t o A L T E R A N Y o b j e c t s ### + --################################################################################### + alter character set iso8859_1 set default collation pt_br; + alter exception exc_test 'You have to change value from @1 to @2'; + alter sequence gen_test restart with -9223372036854775808 increment by 2147483647; + alter domain dm_test type bigint set default 2147483647 set not null add check(value > 0); + + alter table table_test drop constraint m_test_fk; + create descending index table_test_x_desc on table_test(x); + comment on table table_test is 'New comment for this table.'; + set term ^; + alter trigger table_test_trg inactive after insert or update or delete sql security definer as + declare c bigint; + begin + c = gen_id(gen_test,1); + end + ^ + alter view v_table_test as select x.id from rdb$database r left join table_test x on 1=1 + ^ + + alter procedure sp_test(a_id int) returns(x int, z bigint) as + begin + suspend; + end + ^ + alter function fn_test returns bigint as + begin + return -9223372036854775808; + end + ^ + alter package pg_test as + begin + procedure pg_sp1(a_id bigint) returns(z bigint); + function pg_fn1(a_id bigint) returns bigint; + end + ^ + recreate package body pg_test as + begin + procedure pg_sp1(a_id bigint) returns(z bigint) as + begin + z = a_id * 2; + suspend; + end + + function pg_fn1(a_id bigint) returns bigint as + begin + return a_id * 3; + end + end + ^ + set term ;^ + commit; + + --################################################################################ + --### v e r i f y r i g h t t o D R O P A N Y o b j e c t s ### + --################################################################################ + drop package body pg_test; + drop package pg_test; + drop procedure sp_test; + drop function fn_test; + drop view v_table_test; + drop index table_test_x_asc; + drop trigger table_test_trg; + drop table table_test; + drop domain dm_test; + drop sequence gen_test; + drop exception exc_test; + drop collation coll_test; + commit; + + + --###################################################### + --### r e v o k e a l l p r i v i l e g e s ### + --###################################################### + connect '$(DSN)' user john_smith_ddl_grantor password '123'; + revoke all on all from mike_adams_ddl_grantee; + commit; + + set bail off; + + connect '$(DSN)' user mike_adams_ddl_grantee password '456'; + + --########################################################################### + --### v e r i f y t h a t N O r i g h t s r e m a i n s ### + --########################################################################### + -- ALL FOLLOWING STATEMENTS MUST FAIL NOW BECAUSE CURRENT USER + -- HAS NO RIGHTS TO CREATE/ALTER/DROP ANY OBJECTS: + create collation coll_test2 for utf8 from unicode case insensitive; -- must FAIL! + create exception exc_test2 'Invalud value: @1'; + create sequence gen_test2; + create domain dm_test2 as int; + create role r_test2; + create table table_test2(id int, pid int, x int, constraint mtest_pk primary key(id), constraint m_test_fk foreign key(pid) references table_test(id)); + create view v_table_test2 as select 1 from rdb$database; + + set term ^; + create procedure sp_test2 as begin end + ^ + create function fn_test2 returns boolean as begin return false; end + ^ + create package pg_test2 as begin + procedure pg_sp2; + end + ^ + create package body pg_test2 as begin + procedure pg_sp2 as begin end + end + ^ + set term ;^ + commit; + + set bail on; + + connect '$(DSN)' user sysdba password 'masterkey'; + drop user john_smith_ddl_grantor; + drop user mike_adams_ddl_grantee; + commit; +""" + +act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) + +expected_stdout_1 = """ + WHO_AM_I JOHN_SMITH_DDL_GRANTOR + RDB$ROLE_NAME RDB$ADMIN + RDB$ROLE_IN_USE + RDB$SYSTEM_PRIVILEGES FFFFFFFFFFFFFFFF + WHO_AM_I JOHN_SMITH_DDL_GRANTOR + RDB$ROLE_NAME R_FOR_GRANT_REVOKE_ANY_DDL_RIGHT + RDB$ROLE_IN_USE + RDB$SYSTEM_PRIVILEGES 0000400000000000 +""" +expected_stderr_1 = """ + Statement failed, SQLSTATE = 42000 + unsuccessful metadata update + -CREATE COLLATION COLL_TEST2 failed + -No permission for CREATE COLLATION operation + + Statement failed, SQLSTATE = 42000 + unsuccessful metadata update + -CREATE EXCEPTION EXC_TEST2 failed + -No permission for CREATE EXCEPTION operation + + Statement failed, SQLSTATE = 42000 + unsuccessful metadata update + -CREATE SEQUENCE GEN_TEST2 failed + -No permission for CREATE GENERATOR operation + + Statement failed, SQLSTATE = 42000 + unsuccessful metadata update + -CREATE DOMAIN DM_TEST2 failed + -No permission for CREATE DOMAIN operation + + Statement failed, SQLSTATE = 42000 + unsuccessful metadata update + -CREATE ROLE R_TEST2 failed + -No permission for CREATE ROLE operation + + Statement failed, SQLSTATE = 42000 + unsuccessful metadata update + -CREATE TABLE TABLE_TEST2 failed + -No permission for CREATE TABLE operation + + Statement failed, SQLSTATE = 42000 + unsuccessful metadata update + -CREATE VIEW V_TABLE_TEST2 failed + -No permission for CREATE VIEW operation + + Statement failed, SQLSTATE = 42000 + unsuccessful metadata update + -CREATE PROCEDURE SP_TEST2 failed + -No permission for CREATE PROCEDURE operation + + Statement failed, SQLSTATE = 42000 + unsuccessful metadata update + -CREATE FUNCTION FN_TEST2 failed + -No permission for CREATE FUNCTION operation + + Statement failed, SQLSTATE = 42000 + unsuccessful metadata update + -CREATE PACKAGE PG_TEST2 failed + -No permission for CREATE PACKAGE operation + + Statement failed, SQLSTATE = 42000 + unsuccessful metadata update + -CREATE PACKAGE BODY PG_TEST2 failed + -No permission for CREATE PACKAGE operation +""" + +@pytest.mark.version('>=4.0') +def test_1(act_1: Action): + act_1.expected_stdout = expected_stdout_1 + act_1.expected_stderr = expected_stderr_1 + act_1.execute() + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout + diff --git a/tests/functional/syspriv/test_grant_revoke_any_object.py b/tests/functional/syspriv/test_grant_revoke_any_object.py index 404f6724..8cb647d1 100644 --- a/tests/functional/syspriv/test_grant_revoke_any_object.py +++ b/tests/functional/syspriv/test_grant_revoke_any_object.py @@ -95,7 +95,7 @@ test_script_1 = """ drop user u01; drop user u02; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -122,18 +122,19 @@ expected_stdout_1 = """ WHO_AM_I U02 ID 1 WHO_IS_AUTHOR U01 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 28000 no permission for SELECT access to TABLE TEST_U01 -Effective user is U02 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/syspriv/test_modify_ext_conn_pool.py b/tests/functional/syspriv/test_modify_ext_conn_pool.py new file mode 100644 index 00000000..d2006d57 --- /dev/null +++ b/tests/functional/syspriv/test_modify_ext_conn_pool.py @@ -0,0 +1,79 @@ +#coding:utf-8 +# +# id: functional.syspriv.modify_ext_conn_pool +# title: Check ability to manage extyernal connections pool +# decription: +# Verify ability to issue ALTER EXTERNAL CONNECTIONS POOL <...> by non-sysdba user. +# Checked on 5.0.0.133 SS/CS, 4.0.1.2563 SS/CS +# +# tracker_id: +# min_versions: ['4.0.0'] +# versions: 4.0 +# qmid: None + +import pytest +from firebird.qa import db_factory, isql_act, Action + +# version: 4.0 +# resources: None + +substitutions_1 = [] + +init_script_1 = """""" + +db_1 = db_factory(sql_dialect=3, init=init_script_1) + +test_script_1 = """ + set wng off; + set list on; + + create or alter + user john_smith_extpool_manager + password '123' + ; + + set term ^; + execute block as + begin + execute statement 'drop role tmp_role_for_change_extpool'; + when any do begin end + end^ + set term ;^ + + create role tmp_role_for_change_extpool set system privileges to MODIFY_EXT_CONN_POOL; + commit; + + grant default tmp_role_for_change_extpool to user john_smith_extpool_manager; + commit; + + connect '$(DSN)' user john_smith_extpool_manager password '123'; + + alter external connections pool set size 345; + alter external connections pool set lifetime 789 second; + commit; + + select + cast(rdb$get_context('SYSTEM', 'EXT_CONN_POOL_SIZE') as int) as pool_size, + cast(rdb$get_context('SYSTEM', 'EXT_CONN_POOL_LIFETIME') as int) as pool_lifetime + from rdb$database; + rollback; + + connect '$(DSN)' user sysdba password 'masterkey'; + drop user john_smith_extpool_manager; + drop role tmp_role_for_change_extpool; + commit; +""" + +act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) + +expected_stdout_1 = """ + POOL_SIZE 345 + POOL_LIFETIME 789 +""" + +@pytest.mark.version('>=4.0') +def test_1(act_1: Action): + act_1.expected_stdout = expected_stdout_1 + act_1.execute() + assert act_1.clean_stdout == act_1.clean_expected_stdout + diff --git a/tests/functional/syspriv/test_monitor_any_attachment.py b/tests/functional/syspriv/test_monitor_any_attachment.py index c0f7bd92..e69ff44a 100644 --- a/tests/functional/syspriv/test_monitor_any_attachment.py +++ b/tests/functional/syspriv/test_monitor_any_attachment.py @@ -129,7 +129,7 @@ test_script_1 = """ drop user u01; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -147,11 +147,11 @@ expected_stdout_1 = """ WHO_ELSE_HERE SYSDBA WHAT_HE_IS_DOING select current_user from rdb$database Records affected: 1 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/syspriv/test_read_raw_pages.py b/tests/functional/syspriv/test_read_raw_pages.py new file mode 100644 index 00000000..7e91c666 --- /dev/null +++ b/tests/functional/syspriv/test_read_raw_pages.py @@ -0,0 +1,108 @@ +#coding:utf-8 +# +# id: functional.syspriv.read_raw_pages +# title: Check ability to get binary content of DB page by non-sysdba user who is granted with necessary system privilege. +# decription: +# Test uses ability to read binary content of DB page that is provided by FDB driver (see con.get_page_contents() call). +# We obtain content of page with ID=1 (this is PIP) and get its type (it must be 2). +# This action can be done by NON-dba user only if he has apropriate system privilege, otherwise FDB raises Python-related +# error. We catch this error in order to prevent failing of test with 'E' outcome and print text of exception. +# +# Checked on 5.0.0.139 SS/CS; 4.0.1.2568 SS/CS. +# +# tracker_id: +# min_versions: ['4.0.0'] +# versions: 4.0 +# qmid: None + +import pytest +from firebird.qa import db_factory, python_act, Action + +# version: 4.0 +# resources: None + +substitutions_1 = [] + +init_script_1 = """ + set wng off; + set bail on; + set list on; + set count on; + + create or alter + user john_smith_raw_reader + password '123' + using plugin Srp + ; + create or alter + user mike_adams_bad_hacker + password '123' + using plugin Srp + ; + commit; + + set term ^; + execute block as + begin + execute statement 'drop role role_for_read_raw_pages'; + when any do begin end + end^ + set term ;^ + commit; + + create role role_for_read_raw_pages set system privileges to READ_RAW_PAGES; + commit; + grant default role_for_read_raw_pages to user john_smith_raw_reader; + commit; + """ + +db_1 = db_factory(sql_dialect=3, init=init_script_1) + +# test_script_1 +#--- +# +# import os +# from struct import unpack_from +# +# db_file = db_conn.database_name +# db_conn.close() +# +# for i in ( 'mike_adams_bad_hacker', 'john_smith_raw_reader'): +# print('User: %s' % i ) +# con = fdb.connect(dsn = dsn, user = i, password = '123', role = 'role_for_read_raw_pages') +# try: +# page_buffer = con.get_page_contents( 1 ) +# (page_type,) = unpack_from('=4.0') +def test_1(act_1: Action): + pytest.fail("Test not IMPLEMENTED") + + diff --git a/tests/functional/syspriv/test_trace_any_attachment.py b/tests/functional/syspriv/test_trace_any_attachment.py index 687dfea2..db8096df 100644 --- a/tests/functional/syspriv/test_trace_any_attachment.py +++ b/tests/functional/syspriv/test_trace_any_attachment.py @@ -15,7 +15,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -198,18 +198,16 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # time.sleep(1) # cleanup( (f_trclst,f_trcerr,f_trclog, f_trccfg) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ FOUND SYSDBA ATTACHMENT. FOUND SYSDBA STATEMENT. - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/syspriv/test_use_gbak_utility.py b/tests/functional/syspriv/test_use_gbak_utility.py index b00b7969..edbbf29b 100644 --- a/tests/functional/syspriv/test_use_gbak_utility.py +++ b/tests/functional/syspriv/test_use_gbak_utility.py @@ -18,7 +18,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -237,9 +237,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # runProgram('isql',[dsn,'-user',user_name, '-pas', user_password], 'drop user u01; commit;') # cleanup( (fbk_name, fdb_test, f_backup_u01_log,f_backup_u01_err,f_restore_u01_log,f_restore_u01_err,f_restore_sys_log,f_restore_sys_err) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ U01 BACKUP STDLOG: GBAK:CLOSING FILE, COMMITTING, AND FINISHING @@ -262,11 +261,10 @@ expected_stdout_1 = """ X 1 QWERTYUIOPLKJHGFDSAZXCVBNM Records affected: 1 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/syspriv/test_use_granted_by_clause.py b/tests/functional/syspriv/test_use_granted_by_clause.py index 1bed1154..b5ec5776 100644 --- a/tests/functional/syspriv/test_use_granted_by_clause.py +++ b/tests/functional/syspriv/test_use_granted_by_clause.py @@ -95,7 +95,7 @@ test_script_1 = """ drop user u01; drop user u02; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -122,18 +122,19 @@ expected_stdout_1 = """ WHO_AM_I U02 ID 1 WHO_IS_AUTHOR U01 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 28000 no permission for SELECT access to TABLE TEST_U01 -Effective user is U02 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/syspriv/test_use_gstat_utility.py b/tests/functional/syspriv/test_use_gstat_utility.py index eeef6d07..85309116 100644 --- a/tests/functional/syspriv/test_use_gstat_utility.py +++ b/tests/functional/syspriv/test_use_gstat_utility.py @@ -23,7 +23,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -274,9 +274,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # cleanup( (f_db_stat_log, f_db_stat_err, f_db_encr_log, f_db_encr_err) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ Found in base "sts_" output: rdb$database @@ -303,11 +302,10 @@ expected_stdout_1 = """ Found in "sts_encryption" output: blob pages: total 0, encrypted 0, non-crypted 0 Found in "sts_encryption" output: generator pages: total 1, encrypted 0, non-crypted 1 Records affected: 0 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/syspriv/test_use_nbackup_utility.py b/tests/functional/syspriv/test_use_nbackup_utility.py index 5c40c7bc..2d5b0f7f 100644 --- a/tests/functional/syspriv/test_use_nbackup_utility.py +++ b/tests/functional/syspriv/test_use_nbackup_utility.py @@ -88,7 +88,7 @@ test_script_1 = """ drop user u01; drop role role_for_use_nbackup_utility; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -120,11 +120,11 @@ expected_stdout_1 = """ Records affected: 1 - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_01.py b/tests/functional/table/alter/test_01.py index e57292d9..18fb6749 100644 --- a/tests/functional/table/alter/test_01.py +++ b/tests/functional/table/alter/test_01.py @@ -31,12 +31,11 @@ SHOW TABLE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ID INTEGER Nullable -TEXT VARCHAR(32) Nullable -""" +TEXT VARCHAR(32) Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_02.py b/tests/functional/table/alter/test_02.py index 4d33ae8d..eaff2e46 100644 --- a/tests/functional/table/alter/test_02.py +++ b/tests/functional/table/alter/test_02.py @@ -33,12 +33,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ID INTEGER Nullable TEXT VARCHAR(32) Not Null DEFAULT CURRENT_ROLE CONSTRAINT PK: - Primary key (TEXT) -""" +Primary key (TEXT)""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_03.py b/tests/functional/table/alter/test_03.py index da54caa2..2eba6d99 100644 --- a/tests/functional/table/alter/test_03.py +++ b/tests/functional/table/alter/test_03.py @@ -32,11 +32,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ID INTEGER Not Null CONSTRAINT PK: - Primary key (ID)""" +Primary key (ID)""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_04.py b/tests/functional/table/alter/test_04.py index efa2e44b..4e8ea386 100644 --- a/tests/functional/table/alter/test_04.py +++ b/tests/functional/table/alter/test_04.py @@ -32,12 +32,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ID INTEGER Not Null CONSTRAINT UNQ: - Unique key (ID) -""" +Unique key (ID)""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_05.py b/tests/functional/table/alter/test_05.py index a1674bd1..a90cd399 100644 --- a/tests/functional/table/alter/test_05.py +++ b/tests/functional/table/alter/test_05.py @@ -30,12 +30,11 @@ SHOW TABLE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """NEW_COL_NAME INTEGER Not Null -""" +expected_stdout_1 = """NEW_COL_NAME INTEGER Not Null""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_06.py b/tests/functional/table/alter/test_06.py index da509a85..2c22119d 100644 --- a/tests/functional/table/alter/test_06.py +++ b/tests/functional/table/alter/test_06.py @@ -30,12 +30,11 @@ SHOW TABLE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """ID VARCHAR(32) Not Null -""" +expected_stdout_1 = """ID VARCHAR(32) Not Null""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_07.py b/tests/functional/table/alter/test_07.py index 6477bfac..9dd9ad60 100644 --- a/tests/functional/table/alter/test_07.py +++ b/tests/functional/table/alter/test_07.py @@ -32,12 +32,11 @@ SHOW TABLE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEXT VARCHAR(32) Nullable -ID INTEGER Not Null -""" +ID INTEGER Not Null""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_08.py b/tests/functional/table/alter/test_08.py index efc03543..7bec6340 100644 --- a/tests/functional/table/alter/test_08.py +++ b/tests/functional/table/alter/test_08.py @@ -32,12 +32,11 @@ SHOW TABLE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) -expected_stdout_1 = """ID INTEGER Not Null -""" +expected_stdout_1 = """ID INTEGER Not Null""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_09.py b/tests/functional/table/alter/test_09.py index 7bd68a9e..148c2ce1 100644 --- a/tests/functional/table/alter/test_09.py +++ b/tests/functional/table/alter/test_09.py @@ -38,12 +38,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ID ============ - 0 -""" +0""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_10.py b/tests/functional/table/alter/test_10.py index 6fabe2c6..ab30d552 100644 --- a/tests/functional/table/alter/test_10.py +++ b/tests/functional/table/alter/test_10.py @@ -33,12 +33,11 @@ SHOW TABLE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ID INTEGER Not Null -TEXT VARCHAR(32) Nullable -""" +TEXT VARCHAR(32) Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_11.py b/tests/functional/table/alter/test_11.py index 516911e2..98bf6a03 100644 --- a/tests/functional/table/alter/test_11.py +++ b/tests/functional/table/alter/test_11.py @@ -33,12 +33,11 @@ SHOW TABLE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ID INTEGER Not Null -TEXT VARCHAR(32) Nullable -""" +TEXT VARCHAR(32) Nullable""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/alter/test_12.py b/tests/functional/table/alter/test_12.py index 02727ed2..24b0fd55 100644 --- a/tests/functional/table/alter/test_12.py +++ b/tests/functional/table/alter/test_12.py @@ -539,7 +539,7 @@ test_script_1 = """ alter table test2 add f254 int; alter table test2 add f255 int; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -799,19 +799,20 @@ expected_stdout_1 = """ F252 INTEGER Nullable F253 INTEGER Nullable F254 INTEGER Nullable - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 54000 unsuccessful metadata update -TABLE TEST2 -too many versions - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/create/test_01.py b/tests/functional/table/create/test_01.py index 475a485b..06f89bc9 100644 --- a/tests/functional/table/create/test_01.py +++ b/tests/functional/table/create/test_01.py @@ -48,8 +48,7 @@ test_script_1 = """CREATE TABLE test( c22 BLOB SEGMENT SIZE 512, c23 BLOB (1024,1) ); -SHOW TABLE test; -""" +SHOW TABLE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -81,5 +80,5 @@ C23 BLOB segment 1024, subtype TEXT Nullable""" def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/create/test_02.py b/tests/functional/table/create/test_02.py index c3a23b21..f3ebb743 100644 --- a/tests/functional/table/create/test_02.py +++ b/tests/functional/table/create/test_02.py @@ -56,12 +56,11 @@ CONSTRAINT INTEG_7: CONSTRAINT INTEG_5: Unique key (C3) CONSTRAINT INTEG_9: - CHECK (c6>c5) -""" +CHECK (c6>c5)""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/create/test_03.py b/tests/functional/table/create/test_03.py index 3d00e5ad..0c05c10b 100644 --- a/tests/functional/table/create/test_03.py +++ b/tests/functional/table/create/test_03.py @@ -31,8 +31,7 @@ test_script_1 = """CREATE TABLE test( c3 BLOB SUB_TYPE TEXT CHARACTER SET DOS437, c4 test ); -SHOW TABLE test; -""" +SHOW TABLE test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -41,11 +40,11 @@ C2 VARCHAR(40) CHARACTER SET DOS437 Nullable COLLATE DB_DEU437 C3 BLOB segment 80, subtype TEXT CHARACTER SET DOS437 Nullable C4 (TEST) ARRAY OF [40000] - VARCHAR(32765) Nullable""" +VARCHAR(32765) Nullable""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/create/test_04.py b/tests/functional/table/create/test_04.py index daa64942..599e9b08 100644 --- a/tests/functional/table/create/test_04.py +++ b/tests/functional/table/create/test_04.py @@ -57,12 +57,11 @@ CONSTRAINT TEST: CONSTRAINT INTEG_9: CHECK (c2>c1) CONSTRAINT TEST3: - CHECK (NOT c3>c1) -""" +CHECK (NOT c3>c1)""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/table/create/test_05.py b/tests/functional/table/create/test_05.py index 76362020..d99694c1 100644 --- a/tests/functional/table/create/test_05.py +++ b/tests/functional/table/create/test_05.py @@ -38,12 +38,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 42S01 unsuccessful metadata update -CREATE TABLE TEST failed -Table TEST already exists - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/table/create/test_06.py b/tests/functional/table/create/test_06.py index 82a30730..e805707b 100644 --- a/tests/functional/table/create/test_06.py +++ b/tests/functional/table/create/test_06.py @@ -27,7 +27,6 @@ test_script_1 = """CREATE TABLE test( c1 SMALLINT, c1 INTEGER ); - """ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -36,12 +35,11 @@ expected_stderr_1 = """Statement failed, SQLSTATE = 23000 unsuccessful metadata update -CREATE TABLE TEST failed -violation of PRIMARY or UNIQUE KEY constraint "RDB$INDEX_15" on table "RDB$RELATION_FIELDS" --Problematic key value is ("RDB$FIELD_NAME" = 'C1', "RDB$RELATION_NAME" = 'TEST') -""" +-Problematic key value is ("RDB$FIELD_NAME" = 'C1', "RDB$RELATION_NAME" = 'TEST')""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/table/create/test_07.py b/tests/functional/table/create/test_07.py index af068b98..89bd33ae 100644 --- a/tests/functional/table/create/test_07.py +++ b/tests/functional/table/create/test_07.py @@ -35,12 +35,11 @@ unsuccessful metadata update -SQL error code = -607 -Invalid command -Specified domain or source column UNK_DOMAIN does not exist - """ @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/tabloid/core_3611_aux_test.py b/tests/functional/tabloid/core_3611_aux_test.py index 94fbc541..d3df0f89 100644 --- a/tests/functional/tabloid/core_3611_aux_test.py +++ b/tests/functional/tabloid/core_3611_aux_test.py @@ -31,7 +31,7 @@ test_script_1 = """ from tab f1 cross join tab f2 group by f1.p1 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -40,11 +40,11 @@ expected_stderr_1 = """ Dynamic SQL Error -SQL error code = -104 -Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause) - """ +""" @pytest.mark.version('>=2.5.2') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/tabloid/test_arithmetic_cast_float_to_int_as_round.py b/tests/functional/tabloid/test_arithmetic_cast_float_to_int_as_round.py index 5f340c71..90c8220b 100644 --- a/tests/functional/tabloid/test_arithmetic_cast_float_to_int_as_round.py +++ b/tests/functional/tabloid/test_arithmetic_cast_float_to_int_as_round.py @@ -22,17 +22,17 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ set list on; select cast( sqrt(24) as smallint) casted_sqrt from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CASTED_SQRT 5 - """ +""" @pytest.mark.version('>=2.5.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_arithmetic_numexpr_eval_dialect_1.py b/tests/functional/tabloid/test_arithmetic_numexpr_eval_dialect_1.py index e4f0e5c0..ea6758f3 100644 --- a/tests/functional/tabloid/test_arithmetic_numexpr_eval_dialect_1.py +++ b/tests/functional/tabloid/test_arithmetic_numexpr_eval_dialect_1.py @@ -3,7 +3,7 @@ # id: functional.tabloid.arithmetic_numexpr_eval_dialect_1 # title: Check result of integer division on dialect 1. # decription: Was fixed in 2.1, see: sql.ru/forum/actualutils.aspx?action=gotomsg&tid=708324&msg=7865013 -# tracker_id: +# tracker_id: # min_versions: ['2.5.0'] # versions: 2.5 # qmid: None @@ -14,7 +14,7 @@ from firebird.qa import db_factory, isql_act, Action # version: 2.5 # resources: None -substitutions_1 = [] +substitutions_1 = [('[ \t]+', ' ')] init_script_1 = """""" @@ -22,17 +22,17 @@ db_1 = db_factory(page_size=4096, sql_dialect=1, init=init_script_1) test_script_1 = """ set list on; select 36/-4/3 d from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ D -3.000000000000000 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_arithmetic_numexpr_eval_dialect_3.py b/tests/functional/tabloid/test_arithmetic_numexpr_eval_dialect_3.py index f3dc7858..f0306140 100644 --- a/tests/functional/tabloid/test_arithmetic_numexpr_eval_dialect_3.py +++ b/tests/functional/tabloid/test_arithmetic_numexpr_eval_dialect_3.py @@ -14,7 +14,7 @@ from firebird.qa import db_factory, isql_act, Action # version: 2.5 # resources: None -substitutions_1 = [] +substitutions_1 = [('[ \t]+', ' ')] init_script_1 = """""" @@ -22,17 +22,17 @@ db_1 = db_factory(page_size=4096, sql_dialect=3, init=init_script_1) test_script_1 = """ set list on; select 36/-4/3 d from rdb$database; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ D -3 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_bus_3103_windowed_funcs.py b/tests/functional/tabloid/test_bus_3103_windowed_funcs.py index f16486fc..725e2cf4 100644 --- a/tests/functional/tabloid/test_bus_3103_windowed_funcs.py +++ b/tests/functional/tabloid/test_bus_3103_windowed_funcs.py @@ -45,18 +45,18 @@ test_script_1 = """ where ns = 0 group by mx.cid having count(pid) > 0; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CNM ba CNT 13 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_comment_in_object_names.py b/tests/functional/tabloid/test_comment_in_object_names.py index 497851fb..a3f6d1be 100644 --- a/tests/functional/tabloid/test_comment_in_object_names.py +++ b/tests/functional/tabloid/test_comment_in_object_names.py @@ -110,7 +110,7 @@ test_script_1 = """ comment on package comment is '"comment": this is procedure with strange name: "comment"'; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) diff --git a/tests/functional/tabloid/test_dbp_0951_multiple_nested_cte.py b/tests/functional/tabloid/test_dbp_0951_multiple_nested_cte.py index 2ea5d82a..1464d9f1 100644 --- a/tests/functional/tabloid/test_dbp_0951_multiple_nested_cte.py +++ b/tests/functional/tabloid/test_dbp_0951_multiple_nested_cte.py @@ -265,7 +265,7 @@ test_script_1 = """ group by s order by 1,2,3 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -294,11 +294,11 @@ expected_stdout_1 = """ C 8 D 2 S 11,12,31,32,33,34,35,36 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_1697_windowed_funcs.py b/tests/functional/tabloid/test_dbp_1697_windowed_funcs.py index 35688c2e..83658270 100644 --- a/tests/functional/tabloid/test_dbp_1697_windowed_funcs.py +++ b/tests/functional/tabloid/test_dbp_1697_windowed_funcs.py @@ -97,7 +97,7 @@ test_script_1 = """ -- check result of subsequent inserts (instead of heavy full join) for mimatches: --------------- select id,count(*) from tresult group by id having count(*)<>2; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) diff --git a/tests/functional/tabloid/test_dbp_1940_20040130_1740.py b/tests/functional/tabloid/test_dbp_1940_20040130_1740.py index 9f56013a..95cfb32a 100644 --- a/tests/functional/tabloid/test_dbp_1940_20040130_1740.py +++ b/tests/functional/tabloid/test_dbp_1940_20040130_1740.py @@ -72,7 +72,7 @@ test_script_1 = """ where d1.maxt=d2.tm order by 1,2 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -137,11 +137,11 @@ expected_stdout_1 = """ F02 4 F01 2003-01-01 01:11:29.0000 F02 4 - """ +""" @pytest.mark.version('>=2.5.3') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_1940_20061108_2141.py b/tests/functional/tabloid/test_dbp_1940_20061108_2141.py index c34cb5e7..9fb78c8a 100644 --- a/tests/functional/tabloid/test_dbp_1940_20061108_2141.py +++ b/tests/functional/tabloid/test_dbp_1940_20061108_2141.py @@ -44,7 +44,7 @@ test_script_1 = """ ) q order by 1,2 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -109,11 +109,11 @@ expected_stdout_1 = """ F02 4 F01 2003-01-01 01:11:29.0000 F02 4 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_1940_20080912_1005.py b/tests/functional/tabloid/test_dbp_1940_20080912_1005.py index fff7fa74..74ac8c24 100644 --- a/tests/functional/tabloid/test_dbp_1940_20080912_1005.py +++ b/tests/functional/tabloid/test_dbp_1940_20080912_1005.py @@ -53,7 +53,7 @@ test_script_1 = """ , (select row_number()over(order by bbb.qi)-1 s from bbb rows 30) q2 ) x order by 1,2; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -118,11 +118,11 @@ expected_stdout_1 = """ F02 4 F01 2003-01-01 01:11:29.0000 F02 4 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_1940_20090521_1520.py b/tests/functional/tabloid/test_dbp_1940_20090521_1520.py index 7c5d8d08..93d0260d 100644 --- a/tests/functional/tabloid/test_dbp_1940_20090521_1520.py +++ b/tests/functional/tabloid/test_dbp_1940_20090521_1520.py @@ -47,7 +47,7 @@ test_script_1 = """ ) w order by 1,2 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -112,11 +112,11 @@ expected_stdout_1 = """ F02 4 F01 2003-01-01 01:11:29.0000 F02 4 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_1940_20110426_1906.py b/tests/functional/tabloid/test_dbp_1940_20110426_1906.py index 4e0af44d..ecd42dd6 100644 --- a/tests/functional/tabloid/test_dbp_1940_20110426_1906.py +++ b/tests/functional/tabloid/test_dbp_1940_20110426_1906.py @@ -64,7 +64,7 @@ test_script_1 = """ select * from tx order by 1,2 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -129,11 +129,11 @@ expected_stdout_1 = """ F02 4 F01 2003-01-01 01:11:29.0000 F02 4 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_1940_20110725_1159.py b/tests/functional/tabloid/test_dbp_1940_20110725_1159.py index 337aabe9..405f6a6f 100644 --- a/tests/functional/tabloid/test_dbp_1940_20110725_1159.py +++ b/tests/functional/tabloid/test_dbp_1940_20110725_1159.py @@ -71,7 +71,7 @@ test_script_1 = """ group by 1 order by 1,2 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -136,11 +136,11 @@ expected_stdout_1 = """ F02 4 F01 2003-01-01 01:11:29.0000 F02 4 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_1940_20130412_1008.py b/tests/functional/tabloid/test_dbp_1940_20130412_1008.py index d0915422..a247b129 100644 --- a/tests/functional/tabloid/test_dbp_1940_20130412_1008.py +++ b/tests/functional/tabloid/test_dbp_1940_20130412_1008.py @@ -63,7 +63,7 @@ test_script_1 = """ where f02>0 order by 1,2 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -128,11 +128,11 @@ expected_stdout_1 = """ F02 4 F01 2003-01-01 01:11:29.0000 F02 4 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_1940_20130831_2039.py b/tests/functional/tabloid/test_dbp_1940_20130831_2039.py index 989d23f5..df8e65bf 100644 --- a/tests/functional/tabloid/test_dbp_1940_20130831_2039.py +++ b/tests/functional/tabloid/test_dbp_1940_20130831_2039.py @@ -52,7 +52,7 @@ test_script_1 = """ ) f02 from b2 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -117,11 +117,11 @@ expected_stdout_1 = """ F02 4 F01 2003-01-01 01:11:29.0000 F02 4 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_1940_20130912_1908.py b/tests/functional/tabloid/test_dbp_1940_20130912_1908.py index 1850ccfa..668b79f8 100644 --- a/tests/functional/tabloid/test_dbp_1940_20130912_1908.py +++ b/tests/functional/tabloid/test_dbp_1940_20130912_1908.py @@ -49,7 +49,7 @@ test_script_1 = """ group by d,i )a order by 1,2; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -114,11 +114,11 @@ expected_stdout_1 = """ F02 4 F01 2003-01-01 01:11:29.0000 F02 4 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_2146_distinct_not_in.py b/tests/functional/tabloid/test_dbp_2146_distinct_not_in.py index 3dbae06c..c5098c62 100644 --- a/tests/functional/tabloid/test_dbp_2146_distinct_not_in.py +++ b/tests/functional/tabloid/test_dbp_2146_distinct_not_in.py @@ -86,7 +86,7 @@ test_script_1 = """ from q1 natural join q2 order by 1,2,3 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -94,11 +94,11 @@ expected_stdout_1 = """ ARI 6 TBI 10 CNT 3 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_4137_combo_full_join_and_windowed_funcs.py b/tests/functional/tabloid/test_dbp_4137_combo_full_join_and_windowed_funcs.py index f2688855..ea4be571 100644 --- a/tests/functional/tabloid/test_dbp_4137_combo_full_join_and_windowed_funcs.py +++ b/tests/functional/tabloid/test_dbp_4137_combo_full_join_and_windowed_funcs.py @@ -69,7 +69,7 @@ test_script_1 = """ ) z order by 1,2 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -78,11 +78,11 @@ expected_stdout_1 = """ 2 2 2 53 53 53 90 90 90 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_4391_combo_full_join_and_windowed_funcs.py b/tests/functional/tabloid/test_dbp_4391_combo_full_join_and_windowed_funcs.py index ca571b8a..4856c474 100644 --- a/tests/functional/tabloid/test_dbp_4391_combo_full_join_and_windowed_funcs.py +++ b/tests/functional/tabloid/test_dbp_4391_combo_full_join_and_windowed_funcs.py @@ -67,17 +67,17 @@ test_script_1 = """ or x.v2 is distinct from z.v2 or x.v3 is distinct from z.v3 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CNT 0 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_4391_combo_full_join_and_windowed_funcs2.py b/tests/functional/tabloid/test_dbp_4391_combo_full_join_and_windowed_funcs2.py index cde9ee00..bd99d77c 100644 --- a/tests/functional/tabloid/test_dbp_4391_combo_full_join_and_windowed_funcs2.py +++ b/tests/functional/tabloid/test_dbp_4391_combo_full_join_and_windowed_funcs2.py @@ -83,17 +83,17 @@ test_script_1 = """ or x.v2 is distinct from z.v2 or x.v3 is distinct from z.v3 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CNT 0 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_5125_windowed_funcs.py b/tests/functional/tabloid/test_dbp_5125_windowed_funcs.py index 5747b0e0..d56a4725 100644 --- a/tests/functional/tabloid/test_dbp_5125_windowed_funcs.py +++ b/tests/functional/tabloid/test_dbp_5125_windowed_funcs.py @@ -54,7 +54,7 @@ test_script_1 = """ on c1.tbi = d.vx and c1.ari=d.q1 and c2.ari=d.q2 order by 1,2,3 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -66,11 +66,11 @@ expected_stdout_1 = """ 44 17 19 45 18 17 45 20 17 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_7029_heavy_test_for_windowed_funcs.py b/tests/functional/tabloid/test_dbp_7029_heavy_test_for_windowed_funcs.py index 104126a4..d382c21d 100644 --- a/tests/functional/tabloid/test_dbp_7029_heavy_test_for_windowed_funcs.py +++ b/tests/functional/tabloid/test_dbp_7029_heavy_test_for_windowed_funcs.py @@ -135,7 +135,7 @@ test_script_1 = """ where mc < 11 and mq = az group by c, az order by 1,2,3; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -383,11 +383,11 @@ expected_stdout_1 = """ F01 96,48,61 F02 9 F03 7066,7067,8105,8106,8153,8154,8201,8202,9250 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dbp_7114_windowed_funcs.py b/tests/functional/tabloid/test_dbp_7114_windowed_funcs.py index bab05987..4b66ab04 100644 --- a/tests/functional/tabloid/test_dbp_7114_windowed_funcs.py +++ b/tests/functional/tabloid/test_dbp_7114_windowed_funcs.py @@ -115,17 +115,17 @@ test_script_1 = """ having count(*)<>2 ); set list off; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ CNT_MISM 0 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_dml_privileges_sufficiency.py b/tests/functional/tabloid/test_dml_privileges_sufficiency.py index 9e36ee42..1921da9b 100644 --- a/tests/functional/tabloid/test_dml_privileges_sufficiency.py +++ b/tests/functional/tabloid/test_dml_privileges_sufficiency.py @@ -250,7 +250,7 @@ test_script_1 = """ drop user tmp$modifier_upd; drop user tmp$modifier_del; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -292,7 +292,7 @@ expected_stdout_1 = """ X 100 ID 1 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 28000 no permission for SELECT access to TABLE TEST @@ -337,13 +337,14 @@ expected_stderr_1 = """ Statement failed, SQLSTATE = 28000 no permission for SELECT access to TABLE TEST -Effective user is TMP$MODIFIER_DEL - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_eqc_136030.py b/tests/functional/tabloid/test_eqc_136030.py index ff0ac6b7..34af3a28 100644 --- a/tests/functional/tabloid/test_eqc_136030.py +++ b/tests/functional/tabloid/test_eqc_136030.py @@ -15,7 +15,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -86,7 +86,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # Cleanup. # os.remove(fbk) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ INPUT message field count: 2 @@ -370,11 +370,10 @@ expected_stdout_1 = """ TIPGIO DESGIO FBLC - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/tabloid/test_eqc_141347.py b/tests/functional/tabloid/test_eqc_141347.py index 82e17629..d7db8489 100644 --- a/tests/functional/tabloid/test_eqc_141347.py +++ b/tests/functional/tabloid/test_eqc_141347.py @@ -51,7 +51,7 @@ test_script_1 = """ from t1 a left join t2 b on ( a.id = b.pid1 ) and ( b.pid0 = 1 ) where (b.pid1 is null); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -61,11 +61,11 @@ expected_stdout_1 = """ ID 3 PID1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_eqc_160757.py b/tests/functional/tabloid/test_eqc_160757.py index 9a603962..e029c44a 100644 --- a/tests/functional/tabloid/test_eqc_160757.py +++ b/tests/functional/tabloid/test_eqc_160757.py @@ -68,7 +68,7 @@ test_script_1 = """ left join sp_test (t.id,t.val_a,t.val_b) p on p.o_id=t.id where t.id=2 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -100,11 +100,11 @@ expected_stdout_1 = """ VAL_B 0 O_ID 2 O_IS_EQU Failed. - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_eqc_166663.py b/tests/functional/tabloid/test_eqc_166663.py index 336954d2..433b27c1 100644 --- a/tests/functional/tabloid/test_eqc_166663.py +++ b/tests/functional/tabloid/test_eqc_166663.py @@ -91,7 +91,7 @@ test_script_1 = """ select * from tmain where id >= 0; select * from tmain; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -125,20 +125,21 @@ expected_stdout_1 = """ ID 1 NAME qwerty Records affected: 1 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = HY000 exception 2 -EX_FOO -ex_foo -At procedure 'SP_TEST' line: 6, col: 8 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_eqc_200762.py b/tests/functional/tabloid/test_eqc_200762.py index 8369835d..e8ed8808 100644 --- a/tests/functional/tabloid/test_eqc_200762.py +++ b/tests/functional/tabloid/test_eqc_200762.py @@ -2,8 +2,8 @@ # # id: functional.tabloid.eqc_200762 # title: Check results of CONTAINING when search pattern can span on one or several blob segments -# decription: -# tracker_id: +# decription: +# tracker_id: # min_versions: ['2.5.0'] # versions: 2.5 # qmid: None @@ -30,80 +30,80 @@ test_script_1 = """ ^ set term ;^ commit; - + create sequence g; - + recreate table test ( id int primary key, pattern varchar(32765), memotext blob sub_type 1 segment size 1024 character set none ); - + set term ^; execute block returns(id int, ptrn_len int, blob_len int, ptrn_pos int) as declare v_pattern varchar(32765); declare v_db_page smallint; declare v_id int; begin - + select mon$page_size from mon$database into v_db_page; - + delete from test; - + v_pattern = 'qwertyuioplkjhgfdsa1234567890zxcvbnm'; - + -- short pattern (len < 50 bytes), start on 1st segment and spans to 2nd: - insert into test(id, pattern, memotext) + insert into test(id, pattern, memotext) values( gen_id(g,1), :v_pattern, rpad( '', 1000, uuid_to_char(gen_uuid()) ) || :v_pattern ); - + -- middle length pattern (len > 1024 and <= db_page_size) - - insert into test(id, pattern) + + insert into test(id, pattern) values(gen_id(g,1), rpad( '', 2.0/3 * :v_db_page, uuid_to_char(gen_uuid()) ) ) returning id, pattern into v_id, v_pattern; update test set memotext = rpad( '', 1001, uuid_to_char(gen_uuid()) ) || :v_pattern where id = :v_id; - + insert into test(id, pattern) values(gen_id(g,1), rpad( '', 3.0/4 * :v_db_page, uuid_to_char(gen_uuid()) ) ) returning id, pattern into v_id, v_pattern; update test set memotext = rpad( '', 1002, uuid_to_char(gen_uuid()) ) || :v_pattern where id = :v_id; - + insert into test(id, pattern) values(gen_id(g,1), rpad( '', :v_db_page, uuid_to_char(gen_uuid()) ) ) returning id, pattern into v_id, v_pattern; update test set memotext = rpad( '', 1003, uuid_to_char(gen_uuid()) ) || :v_pattern where id = :v_id; - + -- large length pattern ( > db_page_size): - + insert into test(id, pattern) values(gen_id(g,1), rpad( '', 5.0/4 * :v_db_page, uuid_to_char(gen_uuid()) ) ) returning id, pattern into v_id, v_pattern; update test set memotext = rpad( '', 1004, uuid_to_char(gen_uuid()) ) || :v_pattern where id = :v_id; - + insert into test(id, pattern) values(gen_id(g,1), rpad( '', 4.0/3 * :v_db_page, uuid_to_char(gen_uuid()) ) ) returning id, pattern into v_id, v_pattern; update test set memotext = rpad( '', 1005, uuid_to_char(gen_uuid()) ) || :v_pattern where id = :v_id; - + insert into test(id, pattern) values(gen_id(g,1), rpad( '', 31724, uuid_to_char(gen_uuid()) ) ) returning id, pattern into v_id, v_pattern; update test set memotext = rpad( '', 1006, uuid_to_char(gen_uuid()) ) || :v_pattern where id = :v_id; - + for select id, char_length(pattern), char_length(memotext), position(pattern in memotext) from test where memotext containing pattern order by id into id, ptrn_len, blob_len, ptrn_pos - do + do suspend; end ^ set term ;^ commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -112,42 +112,41 @@ expected_stdout_1 = """ PTRN_LEN 36 BLOB_LEN 1036 PTRN_POS 1001 - + ID 2 PTRN_LEN 4915 BLOB_LEN 5916 PTRN_POS 1002 - + ID 3 PTRN_LEN 5734 BLOB_LEN 6736 PTRN_POS 1003 - + ID 4 PTRN_LEN 8192 BLOB_LEN 9195 PTRN_POS 1004 - + ID 5 PTRN_LEN 9830 BLOB_LEN 10834 PTRN_POS 1005 - + ID 6 PTRN_LEN 10650 BLOB_LEN 11655 PTRN_POS 1006 - + ID 7 PTRN_LEN 31724 BLOB_LEN 32730 PTRN_POS 1007 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): - act_1.charset = 'NONE' act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_eqc_306263.py b/tests/functional/tabloid/test_eqc_306263.py index 97ecfd84..38267a14 100644 --- a/tests/functional/tabloid/test_eqc_306263.py +++ b/tests/functional/tabloid/test_eqc_306263.py @@ -10,7 +10,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 2.5.5 # resources: None @@ -99,7 +99,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # Cleanup. # os.remove(fbk) #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ OBSCH_SCHL 1.000000000000000 @@ -121,11 +121,10 @@ expected_stdout_1 = """ ZUKO_GVOND ZUKO_GBID OBJ_ID 3759 - """ +""" @pytest.mark.version('>=2.5.5') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/tabloid/test_eqc_343715.py b/tests/functional/tabloid/test_eqc_343715.py index 91f352b6..a63d6bc3 100644 --- a/tests/functional/tabloid/test_eqc_343715.py +++ b/tests/functional/tabloid/test_eqc_343715.py @@ -149,7 +149,7 @@ test_script_1 = """ select v.table_name, v.natural_reads, v.indexed_reads from v_agg_stat_tabs v where table_name = upper('TEST1'); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -157,11 +157,11 @@ expected_stdout_1 = """ TABLE_NAME TEST1 NATURAL_READS 0 INDEXED_READS 6 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_eqc_344124.py b/tests/functional/tabloid/test_eqc_344124.py index 2ed8598b..4ea3ecc2 100644 --- a/tests/functional/tabloid/test_eqc_344124.py +++ b/tests/functional/tabloid/test_eqc_344124.py @@ -41,17 +41,17 @@ test_script_1 = """ set list on; select * from test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ O_ID 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_gtcs_proc_isql_14.py b/tests/functional/tabloid/test_gtcs_proc_isql_14.py index f304e6f6..dcdb63f3 100644 --- a/tests/functional/tabloid/test_gtcs_proc_isql_14.py +++ b/tests/functional/tabloid/test_gtcs_proc_isql_14.py @@ -54,7 +54,7 @@ test_script_1 = """ select 'point-5' msg, p.a, avg(p.b) from proc14 p group by p.a having avg(p.b) > 10; select 'point-6' msg, p.a, avg(p.b) from proc14 p group by p.a; select 'point-7' msg, p.a, p.b from proc14 p where p.b > (select avg(x.b) from proc14 x); - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -93,11 +93,11 @@ expected_stdout_1 = """ MSG A B point-7 Screw 14 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_join_on_position_function_result.py b/tests/functional/tabloid/test_join_on_position_function_result.py index 881194a1..10af9b53 100644 --- a/tests/functional/tabloid/test_join_on_position_function_result.py +++ b/tests/functional/tabloid/test_join_on_position_function_result.py @@ -39,7 +39,7 @@ test_script_1 = """ left join (select ',123,12,11,' p from rdb$database) x on position(','||cast(t.id as varchar(11))||',', x.p)>0 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -68,11 +68,11 @@ expected_stdout_1 = """ S fff P K - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_join_transformation_001.py b/tests/functional/tabloid/test_join_transformation_001.py index 5056b4a4..51ec3b3b 100644 --- a/tests/functional/tabloid/test_join_transformation_001.py +++ b/tests/functional/tabloid/test_join_transformation_001.py @@ -78,17 +78,17 @@ test_script_1 = """ set term ^; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RESULT Passed. - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_join_transformation_002.py b/tests/functional/tabloid/test_join_transformation_002.py index cb50872f..7ff9b0ce 100644 --- a/tests/functional/tabloid/test_join_transformation_002.py +++ b/tests/functional/tabloid/test_join_transformation_002.py @@ -76,17 +76,17 @@ test_script_1 = """ set term ^; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RESULT Passed. - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_join_transformation_003.py b/tests/functional/tabloid/test_join_transformation_003.py index 84afff77..541507d4 100644 --- a/tests/functional/tabloid/test_join_transformation_003.py +++ b/tests/functional/tabloid/test_join_transformation_003.py @@ -94,17 +94,17 @@ test_script_1 = """ set term ^; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RESULT Passed. - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_join_transformation_004.py b/tests/functional/tabloid/test_join_transformation_004.py index a9ddd552..8f93f8ff 100644 --- a/tests/functional/tabloid/test_join_transformation_004.py +++ b/tests/functional/tabloid/test_join_transformation_004.py @@ -91,17 +91,17 @@ test_script_1 = """ set term ^; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RESULT Passed. - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_join_transformation_005.py b/tests/functional/tabloid/test_join_transformation_005.py index a662690c..168ba35d 100644 --- a/tests/functional/tabloid/test_join_transformation_005.py +++ b/tests/functional/tabloid/test_join_transformation_005.py @@ -84,17 +84,17 @@ test_script_1 = """ set term ^; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RESULT Passed. - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_join_transformation_006.py b/tests/functional/tabloid/test_join_transformation_006.py index 45f7bc97..032a4377 100644 --- a/tests/functional/tabloid/test_join_transformation_006.py +++ b/tests/functional/tabloid/test_join_transformation_006.py @@ -99,17 +99,17 @@ test_script_1 = """ set term ^; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RESULT Passed. - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_join_transformation_007.py b/tests/functional/tabloid/test_join_transformation_007.py index 0533f311..3f9d55fc 100644 --- a/tests/functional/tabloid/test_join_transformation_007.py +++ b/tests/functional/tabloid/test_join_transformation_007.py @@ -110,17 +110,17 @@ test_script_1 = """ set term ^; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RESULT Passed. - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_join_transformation_008.py b/tests/functional/tabloid/test_join_transformation_008.py index b335a8db..f12c3bee 100644 --- a/tests/functional/tabloid/test_join_transformation_008.py +++ b/tests/functional/tabloid/test_join_transformation_008.py @@ -142,17 +142,17 @@ test_script_1 = """ set term ^; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RESULT Passed. - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_loose_record_when_relief_where_expr.py b/tests/functional/tabloid/test_loose_record_when_relief_where_expr.py index 8ade1039..54a04a00 100644 --- a/tests/functional/tabloid/test_loose_record_when_relief_where_expr.py +++ b/tests/functional/tabloid/test_loose_record_when_relief_where_expr.py @@ -58,7 +58,7 @@ test_script_1 = """ ) select t.* from t_separate t ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -69,11 +69,11 @@ expected_stdout_1 = """ SRVT_ID 61844284 ROW_ID 2 SELECTED_CASE A - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_max_path_length.py b/tests/functional/tabloid/test_max_path_length.py index 673f3043..6fd25b2c 100644 --- a/tests/functional/tabloid/test_max_path_length.py +++ b/tests/functional/tabloid/test_max_path_length.py @@ -76,7 +76,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -577,9 +577,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # cleanup( f_list ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ Expected error in the trace: 335544665 : violation of PRIMARY or UNIQUE KEY constraint "TEST_UNQ" on table "TEST" @@ -593,12 +592,11 @@ expected_stdout_1 = """ Pattern 5. DB_RESTORE : FOUND in the trace log Pattern 6. DB_NBACKUP : FOUND in the trace log Pattern 7. DB_NRESTORE : FOUND in the trace log - """ +""" @pytest.mark.version('>=3.0') @pytest.mark.platform('Windows') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/tabloid/test_no_dups_in_call_stack.py b/tests/functional/tabloid/test_no_dups_in_call_stack.py index f4501cd8..a5842070 100644 --- a/tests/functional/tabloid/test_no_dups_in_call_stack.py +++ b/tests/functional/tabloid/test_no_dups_in_call_stack.py @@ -167,7 +167,7 @@ test_script_1 = """ set width object_name 15; select s.whoami, s.call_level, s.object_name, s.object_type, s.source_line from dbg_stack s; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -179,11 +179,11 @@ p_04 2 P_02 5 6 p_04 3 P_03 5 7 p_04 4 P_04 5 8 p_04 5 DBG_GET_STACK 5 13 - """ +""" @pytest.mark.version('>=2.5.4') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_oltp_emul_30_compiler_check.py b/tests/functional/tabloid/test_oltp_emul_30_compiler_check.py index 69db0d02..e4cf2579 100644 --- a/tests/functional/tabloid/test_oltp_emul_30_compiler_check.py +++ b/tests/functional/tabloid/test_oltp_emul_30_compiler_check.py @@ -17525,7 +17525,7 @@ select count(*) as cnt_tables_or_views from rdb$relations s where s.rdb$system_f select count(*) as cnt_triggers from rdb$triggers s where s.rdb$system_flag is distinct from 1; set list off; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -17548,11 +17548,11 @@ expected_stdout_1 = """ CNT_PROCEDURES 100 CNT_TABLES_OR_VIEWS 132 CNT_TRIGGERS 24 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_optimizer_index_navigation.py b/tests/functional/tabloid/test_optimizer_index_navigation.py index 84f71f06..3f4ec48b 100644 --- a/tests/functional/tabloid/test_optimizer_index_navigation.py +++ b/tests/functional/tabloid/test_optimizer_index_navigation.py @@ -43,7 +43,7 @@ test_script_1 = """ select * from t as t3 where x<=0.5; -- NO 'plan order' must be here; bitmap is enough! select * from t as t4 where x<=0.5 order by x desc; -- here PLAN ORDER is much efficient than bitmap + PLAN SORT - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -55,11 +55,11 @@ expected_stdout_1 = """ PLAN (T3 INDEX (T_X_ASC)) PLAN (T4 ORDER T_X_DEC) - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_ora_4475843.py b/tests/functional/tabloid/test_ora_4475843.py index dcfd8b31..4ce07a10 100644 --- a/tests/functional/tabloid/test_ora_4475843.py +++ b/tests/functional/tabloid/test_ora_4475843.py @@ -77,7 +77,7 @@ test_script_1 = """ pm.p_c_id = 102 and pm.v_id = 648; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -87,11 +87,11 @@ expected_stdout_1 = """ M_C_ID 10 ID 102 Records affected: 1 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_pg_13918.py b/tests/functional/tabloid/test_pg_13918.py index 98cb51a9..2f8e5c2b 100644 --- a/tests/functional/tabloid/test_pg_13918.py +++ b/tests/functional/tabloid/test_pg_13918.py @@ -39,7 +39,7 @@ test_script_1 = """ -- Following will NOT compile: -- select i from (select 1 i from rdb$database) where i<0 having 1=0; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -47,11 +47,11 @@ expected_stdout_1 = """ Yeah! 123456789 Records affected: 1 Records affected: 0 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_pg_14105.py b/tests/functional/tabloid/test_pg_14105.py index bd8f31bd..776780cf 100644 --- a/tests/functional/tabloid/test_pg_14105.py +++ b/tests/functional/tabloid/test_pg_14105.py @@ -70,7 +70,7 @@ test_script_1 = """ on ( coalesce(tt.id,tt.id) = tt2.id ) ) ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -78,11 +78,11 @@ expected_stdout_1 = """ A1_ID 1 TT_ID 1 TT2_ID 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_pg_14421.py b/tests/functional/tabloid/test_pg_14421.py index 600b8bb4..b0258bfa 100644 --- a/tests/functional/tabloid/test_pg_14421.py +++ b/tests/functional/tabloid/test_pg_14421.py @@ -50,7 +50,7 @@ test_script_1 = """ ; rollback; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -61,11 +61,11 @@ expected_stdout_1 = """ OLD_ID 2 NEW_ID 9 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_remote_access_to_security_db.py b/tests/functional/tabloid/test_remote_access_to_security_db.py index d527dcf8..c6748d40 100644 --- a/tests/functional/tabloid/test_remote_access_to_security_db.py +++ b/tests/functional/tabloid/test_remote_access_to_security_db.py @@ -15,7 +15,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 3.0 # resources: None @@ -40,18 +40,16 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # select mon$attachment_name,mon$remote_protocol from mon$attachments where mon$attachment_id = current_connection; # ''' # runProgram('isql',['-q'],sql_chk) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ MON$ATTACHMENT_NAME security.db MON$REMOTE_PROTOCOL TCP - """ +""" @pytest.mark.version('>=3.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/tabloid/test_request_of_expr_index.py b/tests/functional/tabloid/test_request_of_expr_index.py index 16086bcf..a8e243b4 100644 --- a/tests/functional/tabloid/test_request_of_expr_index.py +++ b/tests/functional/tabloid/test_request_of_expr_index.py @@ -64,17 +64,17 @@ test_script_1 = """ ; commit; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ RESULT Expected: values are equal. - """ +""" @pytest.mark.version('>=4.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/tabloid/test_snd_7795_20120706_1249.py b/tests/functional/tabloid/test_snd_7795_20120706_1249.py index 8fbb96cc..c3c8751d 100644 --- a/tests/functional/tabloid/test_snd_7795_20120706_1249.py +++ b/tests/functional/tabloid/test_snd_7795_20120706_1249.py @@ -213,7 +213,7 @@ test_script_1 = """ select gate,dts,retail_sum,purchase_sum from c7 order by 1,2; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -257,11 +257,11 @@ expected_stdout_1 = """ DTS 2001-03-22 RETAIL_SUM 24096.00 PURCHASE_SUM 24500.00 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/transactions/test_read_consist_statement_delete_undone_01.py b/tests/functional/transactions/test_read_consist_statement_delete_undone_01.py index d72bf479..590ed9e3 100644 --- a/tests/functional/transactions/test_read_consist_statement_delete_undone_01.py +++ b/tests/functional/transactions/test_read_consist_statement_delete_undone_01.py @@ -114,7 +114,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -353,9 +353,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 @@ -383,11 +382,10 @@ expected_stdout_1 = """ 2 DEL 1 Records affected: 4 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_statement_delete_undone_02.py b/tests/functional/transactions/test_read_consist_statement_delete_undone_02.py index 1611ca30..fc0c8bf1 100644 --- a/tests/functional/transactions/test_read_consist_statement_delete_undone_02.py +++ b/tests/functional/transactions/test_read_consist_statement_delete_undone_02.py @@ -100,7 +100,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -314,9 +314,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ Records affected: 0 @@ -340,11 +339,10 @@ expected_stdout_1 = """ 2 DEL 1 Records affected: 2 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_merge_deny_multiple_matches.py b/tests/functional/transactions/test_read_consist_sttm_merge_deny_multiple_matches.py index 3e6cec66..3dd32f59 100644 --- a/tests/functional/transactions/test_read_consist_sttm_merge_deny_multiple_matches.py +++ b/tests/functional/transactions/test_read_consist_sttm_merge_deny_multiple_matches.py @@ -70,7 +70,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -342,9 +342,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ target_object_type: table, worker STDLOG: Records affected: 2 @@ -377,7 +376,8 @@ expected_stdout_1 = """ target_object_type: table, worker STDLOG: Records affected: 10 target_object_type: table, worker STDERR: Statement failed, SQLSTATE = 21000 target_object_type: table, worker STDERR: Multiple source records cannot match the same target during MERGE - target_object_type: table, worker STDERR: After line 18 in file C:\\FBTESTING\\qa bt-repo mp mp_sttm_restart_max_limit.sql + target_object_type: table, worker STDERR: After line 18 in file C:\\FBTESTING\\qa +bt-repo mp mp_sttm_restart_max_limit.sql target_object_type: view, worker STDLOG: Records affected: 2 target_object_type: view, worker STDLOG: target_object_type: view, worker STDLOG: ID X @@ -408,12 +408,12 @@ expected_stdout_1 = """ target_object_type: view, worker STDLOG: Records affected: 10 target_object_type: view, worker STDERR: Statement failed, SQLSTATE = 21000 target_object_type: view, worker STDERR: Multiple source records cannot match the same target during MERGE - target_object_type: view, worker STDERR: After line 18 in file C:\\FBTESTING\\qa bt-repo mp mp_sttm_restart_max_limit.sql - """ + target_object_type: view, worker STDERR: After line 18 in file C:\\FBTESTING\\qa +bt-repo mp mp_sttm_restart_max_limit.sql +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_max_limit.py b/tests/functional/transactions/test_read_consist_sttm_restart_max_limit.py index 81c5f568..c5e511f1 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_max_limit.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_max_limit.py @@ -56,7 +56,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -326,9 +326,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # # ''' # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ target_object_type: table, checked_DML = upd, iter = 0, restarts number to be tested: 10 @@ -438,7 +437,8 @@ expected_stdout_1 = """ target_object_type: table, checked_DML = upd, iter = 1, worker STDERR: deadlock target_object_type: table, checked_DML = upd, iter = 1, worker STDERR: -update conflicts with concurrent update target_object_type: table, checked_DML = upd, iter = 1, worker STDERR: -concurrent transaction number is 343 - target_object_type: table, checked_DML = upd, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa bt-repo mp mp_sttm_restart_max_limit.sql + target_object_type: table, checked_DML = upd, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa +bt-repo mp mp_sttm_restart_max_limit.sql target_object_type: table, checked_DML = mer, iter = 0, restarts number to be tested: 10 target_object_type: table, checked_DML = mer, iter = 0, worker STDLOG: Records affected: 12 @@ -547,7 +547,8 @@ expected_stdout_1 = """ target_object_type: table, checked_DML = mer, iter = 1, worker STDERR: deadlock target_object_type: table, checked_DML = mer, iter = 1, worker STDERR: -update conflicts with concurrent update target_object_type: table, checked_DML = mer, iter = 1, worker STDERR: -concurrent transaction number is 696 - target_object_type: table, checked_DML = mer, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa bt-repo mp mp_sttm_restart_max_limit.sql + target_object_type: table, checked_DML = mer, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa +bt-repo mp mp_sttm_restart_max_limit.sql target_object_type: table, checked_DML = del, iter = 0, restarts number to be tested: 10 target_object_type: table, checked_DML = del, iter = 0, worker STDLOG: Records affected: 12 @@ -640,7 +641,8 @@ expected_stdout_1 = """ target_object_type: table, checked_DML = del, iter = 1, worker STDERR: deadlock target_object_type: table, checked_DML = del, iter = 1, worker STDERR: -update conflicts with concurrent update target_object_type: table, checked_DML = del, iter = 1, worker STDERR: -concurrent transaction number is 1049 - target_object_type: table, checked_DML = del, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa bt-repo mp mp_sttm_restart_max_limit.sql + target_object_type: table, checked_DML = del, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa +bt-repo mp mp_sttm_restart_max_limit.sql target_object_type: table, checked_DML = lok, iter = 0, restarts number to be tested: 10 target_object_type: table, checked_DML = lok, iter = 0, worker STDLOG: @@ -688,7 +690,8 @@ expected_stdout_1 = """ target_object_type: table, checked_DML = lok, iter = 1, worker STDERR: -update conflicts with concurrent update target_object_type: table, checked_DML = lok, iter = 1, worker STDERR: -concurrent transaction number is 1282 target_object_type: table, checked_DML = lok, iter = 1, worker STDERR: -At block line: 1, col: 39 - target_object_type: table, checked_DML = lok, iter = 1, worker STDERR: After line 19 in file C:\\FBTESTING\\qa bt-repo mp mp_sttm_restart_max_limit.sql + target_object_type: table, checked_DML = lok, iter = 1, worker STDERR: After line 19 in file C:\\FBTESTING\\qa +bt-repo mp mp_sttm_restart_max_limit.sql target_object_type: view, checked_DML = upd, iter = 0, restarts number to be tested: 10 target_object_type: view, checked_DML = upd, iter = 0, worker STDLOG: Records affected: 12 @@ -797,7 +800,8 @@ expected_stdout_1 = """ target_object_type: view, checked_DML = upd, iter = 1, worker STDERR: deadlock target_object_type: view, checked_DML = upd, iter = 1, worker STDERR: -update conflicts with concurrent update target_object_type: view, checked_DML = upd, iter = 1, worker STDERR: -concurrent transaction number is 1630 - target_object_type: view, checked_DML = upd, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa bt-repo mp mp_sttm_restart_max_limit.sql + target_object_type: view, checked_DML = upd, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa +bt-repo mp mp_sttm_restart_max_limit.sql target_object_type: view, checked_DML = mer, iter = 0, restarts number to be tested: 10 target_object_type: view, checked_DML = mer, iter = 0, worker STDLOG: Records affected: 12 @@ -906,7 +910,8 @@ expected_stdout_1 = """ target_object_type: view, checked_DML = mer, iter = 1, worker STDERR: deadlock target_object_type: view, checked_DML = mer, iter = 1, worker STDERR: -update conflicts with concurrent update target_object_type: view, checked_DML = mer, iter = 1, worker STDERR: -concurrent transaction number is 1983 - target_object_type: view, checked_DML = mer, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa bt-repo mp mp_sttm_restart_max_limit.sql + target_object_type: view, checked_DML = mer, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa +bt-repo mp mp_sttm_restart_max_limit.sql target_object_type: view, checked_DML = del, iter = 0, restarts number to be tested: 10 target_object_type: view, checked_DML = del, iter = 0, worker STDLOG: Records affected: 12 @@ -999,7 +1004,8 @@ expected_stdout_1 = """ target_object_type: view, checked_DML = del, iter = 1, worker STDERR: deadlock target_object_type: view, checked_DML = del, iter = 1, worker STDERR: -update conflicts with concurrent update target_object_type: view, checked_DML = del, iter = 1, worker STDERR: -concurrent transaction number is 2336 - target_object_type: view, checked_DML = del, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa bt-repo mp mp_sttm_restart_max_limit.sql + target_object_type: view, checked_DML = del, iter = 1, worker STDERR: After line 18 in file C:\\FBTESTING\\qa +bt-repo mp mp_sttm_restart_max_limit.sql target_object_type: view, checked_DML = lok, iter = 0, restarts number to be tested: 10 target_object_type: view, checked_DML = lok, iter = 0, worker STDLOG: @@ -1024,7 +1030,8 @@ expected_stdout_1 = """ target_object_type: view, checked_DML = lok, iter = 0, worker STDERR: Dynamic SQL Error target_object_type: view, checked_DML = lok, iter = 0, worker STDERR: -SQL error code = -104 target_object_type: view, checked_DML = lok, iter = 0, worker STDERR: -WITH LOCK can be used only with a single physical table - target_object_type: view, checked_DML = lok, iter = 0, worker STDERR: After line 19 in file C:\\FBTESTING\\qa bt-repo mp mp_sttm_restart_max_limit.sql + target_object_type: view, checked_DML = lok, iter = 0, worker STDERR: After line 19 in file C:\\FBTESTING\\qa +bt-repo mp mp_sttm_restart_max_limit.sql target_object_type: view, checked_DML = lok, iter = 1, restarts number to be tested: 12 target_object_type: view, checked_DML = lok, iter = 1, worker STDLOG: @@ -1051,12 +1058,12 @@ expected_stdout_1 = """ target_object_type: view, checked_DML = lok, iter = 1, worker STDERR: Dynamic SQL Error target_object_type: view, checked_DML = lok, iter = 1, worker STDERR: -SQL error code = -104 target_object_type: view, checked_DML = lok, iter = 1, worker STDERR: -WITH LOCK can be used only with a single physical table - target_object_type: view, checked_DML = lok, iter = 1, worker STDERR: After line 19 in file C:\\FBTESTING\\qa bt-repo mp mp_sttm_restart_max_limit.sql - """ + target_object_type: view, checked_DML = lok, iter = 1, worker STDERR: After line 19 in file C:\\FBTESTING\\qa +bt-repo mp mp_sttm_restart_max_limit.sql +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_01.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_01.py index 143f4051..547e3fd9 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_01.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_01.py @@ -136,7 +136,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -359,9 +359,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 3 @@ -410,11 +409,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: 1 DEL 2 checked_mode: view, STDLOG: 2 DEL 2 checked_mode: view, STDLOG: Records affected: 7 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_02.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_02.py index 5bf28fb7..f60f9a50 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_02.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_02.py @@ -127,7 +127,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -349,9 +349,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 6 @@ -394,11 +393,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: 4 DEL 2 checked_mode: view, STDLOG: 5 DEL 2 checked_mode: view, STDLOG: Records affected: 8 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_03.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_03.py index 5386b80b..21e43832 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_03.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_03.py @@ -115,7 +115,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -329,9 +329,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 4 @@ -362,11 +361,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: 5 DEL 3 checked_mode: view, STDLOG: 6 DEL 3 checked_mode: view, STDLOG: Records affected: 6 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_04.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_04.py index 5a68d642..6022bf67 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_04.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_delete_04.py @@ -132,7 +132,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -361,9 +361,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 4 @@ -406,11 +405,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: -3 DEL 4 checked_mode: view, STDLOG: -4 DEL 4 checked_mode: view, STDLOG: Records affected: 9 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_01.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_01.py index ef6e9b2c..75fd8705 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_01.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_01.py @@ -117,7 +117,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -336,9 +336,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 5 @@ -385,11 +384,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: 2 UPD 2 checked_mode: view, STDLOG: 3 UPD 2 checked_mode: view, STDLOG: Records affected: 7 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_02.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_02.py index 7d442892..b85ae9f9 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_02.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_02.py @@ -128,7 +128,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -354,9 +354,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 6 @@ -399,11 +398,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: 4 DEL 2 checked_mode: view, STDLOG: 5 DEL 2 checked_mode: view, STDLOG: Records affected: 8 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_03.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_03.py index e7085e56..4d7e182e 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_03.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_03.py @@ -116,7 +116,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -334,9 +334,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 4 @@ -367,11 +366,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: 5 DEL 3 checked_mode: view, STDLOG: 6 DEL 3 checked_mode: view, STDLOG: Records affected: 6 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_04.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_04.py index 52e6bcec..c5d5a916 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_04.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_merge_04.py @@ -140,7 +140,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -373,9 +373,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 4 @@ -426,11 +425,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: -3 UPD 4 checked_mode: view, STDLOG: -4 UPD 4 checked_mode: view, STDLOG: Records affected: 9 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_update_01.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_update_01.py index a1e95e6b..4c5752af 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_update_01.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_update_01.py @@ -121,7 +121,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -347,9 +347,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 8 @@ -412,11 +411,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: 4 UPD 2 checked_mode: view, STDLOG: 5 UPD 2 checked_mode: view, STDLOG: Records affected: 12 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_update_02.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_update_02.py index a62d9e99..eb632e53 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_update_02.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_update_02.py @@ -120,7 +120,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -346,9 +346,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 4 @@ -396,11 +395,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: 3 UPD 2 checked_mode: view, STDLOG: 4 UPD 2 checked_mode: view, STDLOG: Records affected: 8 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_update_03.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_update_03.py index 953d9fa8..17962ee8 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_update_03.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_update_03.py @@ -128,7 +128,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -362,9 +362,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 10 @@ -430,11 +429,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: 130 UPD 2 checked_mode: view, STDLOG: 140 UPD 2 checked_mode: view, STDLOG: Records affected: 11 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/transactions/test_read_consist_sttm_restart_on_update_04.py b/tests/functional/transactions/test_read_consist_sttm_restart_on_update_04.py index 875c3725..742d5741 100644 --- a/tests/functional/transactions/test_read_consist_sttm_restart_on_update_04.py +++ b/tests/functional/transactions/test_read_consist_sttm_restart_on_update_04.py @@ -133,7 +133,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -360,9 +360,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # ########## # time.sleep(1) # cleanup( (f_init_log, f_init_err, f_worker_sql, f_worker_log, f_worker_err) ) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ checked_mode: table, STDLOG: Records affected: 4 @@ -416,11 +415,10 @@ expected_stdout_1 = """ checked_mode: view, STDLOG: -3 UPD 4 checked_mode: view, STDLOG: -4 UPD 4 checked_mode: view, STDLOG: Records affected: 9 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/trigger/alter/test_01.py b/tests/functional/trigger/alter/test_01.py index 37d38c7c..f422e92c 100644 --- a/tests/functional/trigger/alter/test_01.py +++ b/tests/functional/trigger/alter/test_01.py @@ -37,8 +37,7 @@ commit;""" db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ALTER TRIGGER tg ACTIVE; -SHOW TRIGGER tg; -""" +SHOW TRIGGER tg;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -48,12 +47,11 @@ AS BEGIN new.id=1; END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/alter/test_02.py b/tests/functional/trigger/alter/test_02.py index c198dbf2..347391fd 100644 --- a/tests/functional/trigger/alter/test_02.py +++ b/tests/functional/trigger/alter/test_02.py @@ -47,12 +47,11 @@ AS BEGIN new.id=1; END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/alter/test_03.py b/tests/functional/trigger/alter/test_03.py index 53265b65..08be550a 100644 --- a/tests/functional/trigger/alter/test_03.py +++ b/tests/functional/trigger/alter/test_03.py @@ -44,12 +44,11 @@ TG, Sequence: 0, Type: BEFORE DELETE, Active AS BEGIN END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/alter/test_04.py b/tests/functional/trigger/alter/test_04.py index d223c5fc..ac501b77 100644 --- a/tests/functional/trigger/alter/test_04.py +++ b/tests/functional/trigger/alter/test_04.py @@ -44,12 +44,11 @@ TG, Sequence: 0, Type: BEFORE INSERT, Active AS BEGIN END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/alter/test_05.py b/tests/functional/trigger/alter/test_05.py index 073736e6..dba23872 100644 --- a/tests/functional/trigger/alter/test_05.py +++ b/tests/functional/trigger/alter/test_05.py @@ -44,12 +44,11 @@ TG, Sequence: 0, Type: BEFORE UPDATE, Active AS BEGIN END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/alter/test_06.py b/tests/functional/trigger/alter/test_06.py index 5a034494..84943c81 100644 --- a/tests/functional/trigger/alter/test_06.py +++ b/tests/functional/trigger/alter/test_06.py @@ -39,7 +39,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ ALTER TRIGGER tg AFTER DELETE; SHOW TRIGGER tg; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -49,11 +49,11 @@ expected_stdout_1 = """ AS BEGIN END - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/alter/test_07.py b/tests/functional/trigger/alter/test_07.py index d94f9e45..23b73e6d 100644 --- a/tests/functional/trigger/alter/test_07.py +++ b/tests/functional/trigger/alter/test_07.py @@ -19,13 +19,13 @@ # # tracker_id: # min_versions: [] -# versions: 4.0.0 +# versions: 2.5.0, 4.0.0 # qmid: functional.trigger.alter.alter_trigger_07 import pytest from firebird.qa import db_factory, isql_act, Action -# version: 4.0.0 +# version: 2.5.0 # resources: None substitutions_1 = [('\\+.*', ''), ('\\=.*', ''), ('Trigger text.*', '')] @@ -47,7 +47,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ ALTER TRIGGER tg AFTER INSERT; SHOW TRIGGER tg; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -59,17 +59,67 @@ expected_stdout_1 = """ new.id=1; END +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 42000 - attempted update of read-only column TEST.ID - """ + attempted update of read-only column +""" -@pytest.mark.version('>=4.0.0') +@pytest.mark.version('>=2.5.0,<4.0.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout + +# version: 4.0.0 +# resources: None + +substitutions_2 = [('\\+.*', ''), ('\\=.*', ''), ('Trigger text.*', '')] + +init_script_2 = """ + CREATE TABLE test( id INTEGER NOT NULL CONSTRAINT unq UNIQUE, text VARCHAR(32)); + SET TERM ^; + CREATE TRIGGER tg FOR test BEFORE UPDATE + AS + BEGIN + new.id=1; + END ^ + SET TERM ;^ + commit; + """ + +db_2 = db_factory(sql_dialect=3, init=init_script_2) + +test_script_2 = """ + ALTER TRIGGER tg AFTER INSERT; + SHOW TRIGGER tg; +""" + +act_2 = isql_act('db_2', test_script_2, substitutions=substitutions_2) + +expected_stdout_2 = """ + Triggers on Table TEST: + TG, Sequence: 0, Type: BEFORE UPDATE, Active + AS + BEGIN + new.id=1; + END + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +""" +expected_stderr_2 = """ + Statement failed, SQLSTATE = 42000 + attempted update of read-only column TEST.ID +""" + +@pytest.mark.version('>=4.0.0') +def test_2(act_2: Action): + act_2.expected_stdout = expected_stdout_2 + act_2.expected_stderr = expected_stderr_2 + act_2.execute() + assert act_2.clean_stderr == act_2.clean_expected_stderr + + assert act_2.clean_stdout == act_2.clean_expected_stdout diff --git a/tests/functional/trigger/alter/test_08.py b/tests/functional/trigger/alter/test_08.py index 4a0572bc..4a3fa7f9 100644 --- a/tests/functional/trigger/alter/test_08.py +++ b/tests/functional/trigger/alter/test_08.py @@ -39,7 +39,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ ALTER TRIGGER tg POSITION 20; SHOW TRIGGER tg; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -50,11 +50,11 @@ expected_stdout_1 = """ BEGIN new.id=1; END - """ +""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/alter/test_09.py b/tests/functional/trigger/alter/test_09.py index c1830988..67e5c18a 100644 --- a/tests/functional/trigger/alter/test_09.py +++ b/tests/functional/trigger/alter/test_09.py @@ -53,12 +53,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEXT ================================ -tg2 tg1 -""" +tg2 tg1""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/alter/test_10.py b/tests/functional/trigger/alter/test_10.py index 1d5e5c62..916248f5 100644 --- a/tests/functional/trigger/alter/test_10.py +++ b/tests/functional/trigger/alter/test_10.py @@ -42,8 +42,7 @@ BEGIN END ^ SET TERM ;^ -SHOW TRIGGER tg; -""" +SHOW TRIGGER tg;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -53,12 +52,11 @@ AS BEGIN new.text='altered trigger'; END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/alter/test_11.py b/tests/functional/trigger/alter/test_11.py index 6934ff79..34d9b351 100644 --- a/tests/functional/trigger/alter/test_11.py +++ b/tests/functional/trigger/alter/test_11.py @@ -51,12 +51,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """TEXT ================================ -altered trigger -""" +altered trigger""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/create/test_01.py b/tests/functional/trigger/create/test_01.py index bdf1e142..32ea3940 100644 --- a/tests/functional/trigger/create/test_01.py +++ b/tests/functional/trigger/create/test_01.py @@ -42,12 +42,11 @@ AS BEGIN new.id=1; END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/create/test_02.py b/tests/functional/trigger/create/test_02.py index 82f2464e..dc775321 100644 --- a/tests/functional/trigger/create/test_02.py +++ b/tests/functional/trigger/create/test_02.py @@ -39,12 +39,11 @@ TEST, Sequence: 0, Type: AFTER INSERT, Active AS BEGIN END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/create/test_03.py b/tests/functional/trigger/create/test_03.py index 6518d50c..8f4a5c8f 100644 --- a/tests/functional/trigger/create/test_03.py +++ b/tests/functional/trigger/create/test_03.py @@ -30,8 +30,7 @@ BEGIN new.id=1; END^ SET TERM ;^ -SHOW TRIGGER test; -""" +SHOW TRIGGER test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -41,12 +40,11 @@ AS BEGIN new.id=1; END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/create/test_04.py b/tests/functional/trigger/create/test_04.py index 80a9e99e..9624e7d6 100644 --- a/tests/functional/trigger/create/test_04.py +++ b/tests/functional/trigger/create/test_04.py @@ -38,12 +38,11 @@ TEST, Sequence: 0, Type: AFTER UPDATE, Active AS BEGIN END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/create/test_05.py b/tests/functional/trigger/create/test_05.py index f38e3b6b..8eac494f 100644 --- a/tests/functional/trigger/create/test_05.py +++ b/tests/functional/trigger/create/test_05.py @@ -39,12 +39,11 @@ TEST, Sequence: 0, Type: BEFORE DELETE, Active AS BEGIN END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/create/test_06.py b/tests/functional/trigger/create/test_06.py index 4a6044b6..dd4edf72 100644 --- a/tests/functional/trigger/create/test_06.py +++ b/tests/functional/trigger/create/test_06.py @@ -29,8 +29,7 @@ CREATE TRIGGER test FOR tb AFTER DELETE AS BEGIN END^ SET TERM ;^ -SHOW TRIGGER test; -""" +SHOW TRIGGER test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -39,12 +38,11 @@ TEST, Sequence: 0, Type: AFTER DELETE, Active AS BEGIN END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/create/test_07.py b/tests/functional/trigger/create/test_07.py index f33d989e..761c7985 100644 --- a/tests/functional/trigger/create/test_07.py +++ b/tests/functional/trigger/create/test_07.py @@ -33,7 +33,7 @@ test_script_1 = """ BEGIN END^ SET TERM ;^ - SHOW TRIGGER test;""" +SHOW TRIGGER test;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -42,11 +42,11 @@ expected_stdout_1 = """Triggers on Table TB: AS BEGIN END - """ +""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/create/test_08.py b/tests/functional/trigger/create/test_08.py index c2d627c2..57aca36d 100644 --- a/tests/functional/trigger/create/test_08.py +++ b/tests/functional/trigger/create/test_08.py @@ -38,12 +38,11 @@ TEST, Sequence: 12, Type: AFTER DELETE, Active AS BEGIN END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=2.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/create/test_09.py b/tests/functional/trigger/create/test_09.py index 8669d09f..0ccfed4f 100644 --- a/tests/functional/trigger/create/test_09.py +++ b/tests/functional/trigger/create/test_09.py @@ -82,12 +82,11 @@ DECLARE VARIABLE v21 NATIONAL CHAR VARYING(30); BEGIN new.id=1; END -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -""" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/create/test_10.py b/tests/functional/trigger/create/test_10.py index 004128a8..d17ee67f 100644 --- a/tests/functional/trigger/create/test_10.py +++ b/tests/functional/trigger/create/test_10.py @@ -83,7 +83,7 @@ test_script_1 = """ END^ SET TERM ;^ SHOW TRIGGER test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -134,11 +134,11 @@ expected_stdout_1 = """ END WHEN ANY DO v21=4; END - """ +""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/create/test_17.py b/tests/functional/trigger/create/test_17.py index d7df209c..df894b73 100644 --- a/tests/functional/trigger/create/test_17.py +++ b/tests/functional/trigger/create/test_17.py @@ -33,7 +33,7 @@ test_script_1 = """ END^ SET TERM ;^ SHOW TRIGGER test; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -44,11 +44,11 @@ expected_stdout_1 = """ BEGIN new.id=1; END - """ +""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/database/test_connect_01.py b/tests/functional/trigger/database/test_connect_01.py index 54b55c6c..5f8cd5f0 100644 --- a/tests/functional/trigger/database/test_connect_01.py +++ b/tests/functional/trigger/database/test_connect_01.py @@ -43,18 +43,18 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ set list on; select * from LOG; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ID 1 MSG Connect - """ +""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/database/test_connect_02.py b/tests/functional/trigger/database/test_connect_02.py index ca8d058d..dd12da6d 100644 --- a/tests/functional/trigger/database/test_connect_02.py +++ b/tests/functional/trigger/database/test_connect_02.py @@ -9,7 +9,7 @@ # qmid: functional.trigger.database.connect_02 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 2.1 # resources: None @@ -50,9 +50,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # con = kdb.connect(dsn=dsn.encode(),user=user_name.encode(),password=user_password.encode(),role='TEST') # except Exception,e: # for msg in e: print (msg) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """Error while connecting to database: - SQLCODE: -836 @@ -61,12 +60,10 @@ expected_stdout_1 = """Error while connecting to database: - Exception in ON CONNECT trigger - At trigger 'ONCONNECT' line: 5, col: 29 -836 -335544517 -""" +335544517""" @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/trigger/database/test_connect_03.py b/tests/functional/trigger/database/test_connect_03.py index b4a8b93c..56ce3ea6 100644 --- a/tests/functional/trigger/database/test_connect_03.py +++ b/tests/functional/trigger/database/test_connect_03.py @@ -49,7 +49,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """ set list on; select * from LOG; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -58,11 +58,11 @@ expected_stdout_1 = """ MSG Connect T1 ID 2 MSG Connect T2 - """ +""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/database/test_connect_04.py b/tests/functional/trigger/database/test_connect_04.py index 34fdc233..259cc9dc 100644 --- a/tests/functional/trigger/database/test_connect_04.py +++ b/tests/functional/trigger/database/test_connect_04.py @@ -9,7 +9,7 @@ # qmid: functional.trigger.database.connect_04 import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 2.1 # resources: None @@ -66,9 +66,8 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # c = db_conn.cursor() # c.execute('select * from LOG') # printData(c) -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """Error while connecting to database: - SQLCODE: -836 @@ -82,12 +81,10 @@ ID MSG ----------- ---------------------------------------------------------------------------------------------------- 1 Connect T1 as NONE 2 Connect T2 as NONE -3 Connect T3 as NONE -""" +3 Connect T3 as NONE""" @pytest.mark.version('>=2.1') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/trigger/database/test_disconnect_01.py b/tests/functional/trigger/database/test_disconnect_01.py index 28a87323..5b0d7967 100644 --- a/tests/functional/trigger/database/test_disconnect_01.py +++ b/tests/functional/trigger/database/test_disconnect_01.py @@ -18,7 +18,7 @@ # qmid: import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -134,20 +134,18 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) # time.sleep(1) # cleanup( (f_init_log,f_curr_log,f_diff_txt) ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) expected_stdout_1 = """ + Error at disconnect: + arithmetic exception, numeric overflow, or string truncation + Integer divide by zero. The code attempted to divide an integer value by an integer divisor of zero. + At trigger 'TRG_DISCONNECT' line: 4, col: 9 - """ +""" @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/trigger/database/test_transaction_start_multiple_with_normal_finish.py b/tests/functional/trigger/database/test_transaction_start_multiple_with_normal_finish.py index 1534fd54..6647c1ad 100644 --- a/tests/functional/trigger/database/test_transaction_start_multiple_with_normal_finish.py +++ b/tests/functional/trigger/database/test_transaction_start_multiple_with_normal_finish.py @@ -113,7 +113,7 @@ test_script_1 = """ from trg_log t ) t where trg_tx is distinct from current_transaction; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -133,11 +133,11 @@ expected_stdout_1 = """ ROWS_AFTER_ROLLBACK 0 ROWS_AFTER_COMMIT EXPECTED. - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/database/test_transactioncommit_01.py b/tests/functional/trigger/database/test_transactioncommit_01.py index 8d81d3aa..e532390f 100644 --- a/tests/functional/trigger/database/test_transactioncommit_01.py +++ b/tests/functional/trigger/database/test_transactioncommit_01.py @@ -57,7 +57,7 @@ test_script_1 = """SET AUTODDL OFF; SELECT RDB$GET_CONTEXT('USER_SESSION', 'Trn_ID') AS CTX_VAR FROM RDB$DATABASE; COMMIT; SELECT RDB$GET_CONTEXT('USER_SESSION', 'Trn_ID') AS CTX_VAR FROM RDB$DATABASE; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -66,11 +66,11 @@ expected_stdout_1 = """ CTX_VAR 3 CTX_VAR 3 CTX_VAR 4 - """ +""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/database/test_transactionrollback_01.py b/tests/functional/trigger/database/test_transactionrollback_01.py index 9815b44d..4bf19ff8 100644 --- a/tests/functional/trigger/database/test_transactionrollback_01.py +++ b/tests/functional/trigger/database/test_transactionrollback_01.py @@ -97,7 +97,7 @@ test_script_1 = """ -- NB: client should NOT get exception (zero divide) from trigger which is defined for __ROLLBACK__ event! select gen_id(g,0) as curr_g, v.* from v_check v; -- 1235, 1 - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -113,11 +113,11 @@ expected_stdout_1 = """ CURR_G 1235 CTX 1 - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/database/test_transactionstart_01.py b/tests/functional/trigger/database/test_transactionstart_01.py index 55d774cc..5ce4c819 100644 --- a/tests/functional/trigger/database/test_transactionstart_01.py +++ b/tests/functional/trigger/database/test_transactionstart_01.py @@ -93,7 +93,7 @@ test_script_1 = """ commit; commit; -- this should raise exception in trg_start_tx and this exception SHOULD PASS to the client. - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -107,19 +107,20 @@ expected_stdout_1 = """ PHASE Final select CNT_CHK_TX 1 CNT_CHK_TRG 1 - """ +""" expected_stderr_1 = """ Statement failed, SQLSTATE = 22012 arithmetic exception, numeric overflow, or string truncation -Integer divide by zero. The code attempted to divide an integer value by an integer divisor of zero. -At trigger 'TRG_START_TX' - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stderr == act_1.clean_expected_stderr + + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/trigger/table/test_alter_12.py b/tests/functional/trigger/table/test_alter_12.py index e49326c8..91ba7ecf 100644 --- a/tests/functional/trigger/table/test_alter_12.py +++ b/tests/functional/trigger/table/test_alter_12.py @@ -48,7 +48,7 @@ test_script_1 = """ old.text = 'altered trigger'; end ^ set term ;^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -61,11 +61,11 @@ expected_stderr_1 = """ -Column unknown -OLD.TEXT -At line 4, column 1 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/trigger/table/test_alter_13.py b/tests/functional/trigger/table/test_alter_13.py index 084dc8ee..35869528 100644 --- a/tests/functional/trigger/table/test_alter_13.py +++ b/tests/functional/trigger/table/test_alter_13.py @@ -46,7 +46,7 @@ test_script_1 = """ new.text='altered trigger'; end ^ set term ;^ - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -59,11 +59,11 @@ expected_stderr_1 = """ -Column unknown -NEW.TEXT -At line 4, column 5 - """ +""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/util/test_gbak_zip.py b/tests/functional/util/test_gbak_zip.py index 32006727..725a7895 100644 --- a/tests/functional/util/test_gbak_zip.py +++ b/tests/functional/util/test_gbak_zip.py @@ -36,7 +36,7 @@ # qmid: None import pytest -from firebird.qa import db_factory, isql_act, Action +from firebird.qa import db_factory, python_act, Action # version: 4.0 # resources: None @@ -635,14 +635,12 @@ db_1 = db_factory(charset='UTF8', sql_dialect=3, init=init_script_1) # f_list |= set( ( f_init_ddl, f_init_log, f_meta_log1, f_meta_log2, f_backup_log, f_restore_log, tmpfbk, tmpfdb) ) # cleanup( f_list ) # -# #--- -#act_1 = python_act('db_1', test_script_1, substitutions=substitutions_1) +act_1 = python_act('db_1', substitutions=substitutions_1) @pytest.mark.version('>=4.0') -@pytest.mark.xfail -def test_1(db_1): +def test_1(act_1: Action): pytest.fail("Test not IMPLEMENTED") diff --git a/tests/functional/view/create/test_01.py b/tests/functional/view/create/test_01.py index 654c42a5..a2a2e968 100644 --- a/tests/functional/view/create/test_01.py +++ b/tests/functional/view/create/test_01.py @@ -33,11 +33,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ID INTEGER Nullable View Source: ==== ====== - SELECT * FROM tb""" +SELECT * FROM tb""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/view/create/test_02.py b/tests/functional/view/create/test_02.py index a3b4ba09..84abe546 100644 --- a/tests/functional/view/create/test_02.py +++ b/tests/functional/view/create/test_02.py @@ -34,12 +34,11 @@ expected_stdout_1 = """ID INTEGER Nullable NUM INTEGER Expression View Source: ==== ====== - SELECT id,5 FROM tb -""" +SELECT id,5 FROM tb""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/view/create/test_03.py b/tests/functional/view/create/test_03.py index 4d8dbabc..86444d88 100644 --- a/tests/functional/view/create/test_03.py +++ b/tests/functional/view/create/test_03.py @@ -36,12 +36,11 @@ unsuccessful metadata update -SQL error code = -607 -Invalid command -number of columns does not match select list -There is no view TEST in this database -""" +There is no view TEST in this database""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/view/create/test_04.py b/tests/functional/view/create/test_04.py index 960e46a9..ad11be7d 100644 --- a/tests/functional/view/create/test_04.py +++ b/tests/functional/view/create/test_04.py @@ -35,12 +35,11 @@ unsuccessful metadata update -SQL error code = -607 -Invalid command -number of columns does not match select list -There is no view TEST in this database -""" +There is no view TEST in this database""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/view/create/test_05.py b/tests/functional/view/create/test_05.py index b525af7a..c7298ab0 100644 --- a/tests/functional/view/create/test_05.py +++ b/tests/functional/view/create/test_05.py @@ -37,12 +37,11 @@ expected_stdout_1 = """ ID NUM ============ ============ 3 5 - 10 5 -""" +10 5""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/view/create/test_06.py b/tests/functional/view/create/test_06.py index 9c78dd09..2eddc51f 100644 --- a/tests/functional/view/create/test_06.py +++ b/tests/functional/view/create/test_06.py @@ -35,12 +35,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ID ============ - 2 -""" +2""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/view/create/test_07.py b/tests/functional/view/create/test_07.py index a2b558ab..f95d76bf 100644 --- a/tests/functional/view/create/test_07.py +++ b/tests/functional/view/create/test_07.py @@ -34,12 +34,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ ID ============ - 2 -""" +2""" @pytest.mark.version('>=1.0') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/functional/view/create/test_08.py b/tests/functional/view/create/test_08.py index d2045d8f..e8d6df3b 100644 --- a/tests/functional/view/create/test_08.py +++ b/tests/functional/view/create/test_08.py @@ -32,12 +32,11 @@ act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stderr_1 = """Statement failed, SQLSTATE = 23000 Operation violates CHECK constraint on view or table TEST --At trigger 'CHECK_1' -""" +-At trigger 'CHECK_1'""" @pytest.mark.version('>=3.0') def test_1(act_1: Action): act_1.expected_stderr = expected_stderr_1 act_1.execute() - assert act_1.clean_expected_stderr == act_1.clean_stderr + assert act_1.clean_stderr == act_1.clean_expected_stderr diff --git a/tests/functional/view/create/test_10.py b/tests/functional/view/create/test_10.py index d5f8f9b5..1545340f 100644 --- a/tests/functional/view/create/test_10.py +++ b/tests/functional/view/create/test_10.py @@ -24,8 +24,7 @@ db_1 = db_factory(sql_dialect=3, init=init_script_1) test_script_1 = """CREATE VIEW V1 AS SELECT ID AS VID, NAME FROM T1; COMMIT; -SHOW VIEW V1; -""" +SHOW VIEW V1;""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) @@ -33,12 +32,11 @@ expected_stdout_1 = """VID INTEGER Nullable NAME VARCHAR(10) Nullable View Source: ==== ====== - SELECT ID AS VID, NAME FROM T1 -""" +SELECT ID AS VID, NAME FROM T1""" @pytest.mark.version('>=2.1') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout diff --git a/tests/test_full_join_push_where_predicate.py b/tests/test_full_join_push_where_predicate.py index a4dc6f05..0dc21050 100644 --- a/tests/test_full_join_push_where_predicate.py +++ b/tests/test_full_join_push_where_predicate.py @@ -51,18 +51,18 @@ test_script_1 = """ where t1.f1 is null order by 1,2 ; - """ +""" act_1 = isql_act('db_1', test_script_1, substitutions=substitutions_1) expected_stdout_1 = """ T1_F1 T2_F1 d - """ +""" @pytest.mark.version('>=2.5') def test_1(act_1: Action): act_1.expected_stdout = expected_stdout_1 act_1.execute() - assert act_1.clean_expected_stdout == act_1.clean_stdout + assert act_1.clean_stdout == act_1.clean_expected_stdout