Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Забавный баг на Oracle 19: create or replace view .. (...) as / 21 сообщений из 21, страница 1 из 1
28.04.2021, 02:09
    #40066528
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
-- по ошибке указали неправильный порядок столбцов (b,a) вместо (a,b):
SQL> create or replace view v1(b,a) as select 'a' a,'b' b from dual;

View created.

SQL> select * from v1;

B A
- -
a b

1 row selected.


-- пытаются исправить:
SQL> create or replace view v1(a,b) as select 'a' a,'b' b from dual;

View created.

-- но ничего не меняется:
SQL> select * from v1;

B A
- -
a b

1 row selected.

-- пробуем другой вариант:
SQL> alter view v1 compile;

View altered.


-- все равно ничего не меняется:
SQL> select * from v1;

B A
- -
a b

1 row selected.

-- приходится менять текст запроса:
SQL> create or replace view v1(a,b) as select 'a' a,'b' b from dual/*just to change query text*/;

View created.

-- наконец, все ок:
SQL> select * from v1;

A B
- -
a b

1 row selected.
...
Рейтинг: 0 / 0
28.04.2021, 02:21
    #40066530
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
точно так же и с другими именами стобцов
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
SQL> create or replace view v1(a,c) as select 'a' a,'b' b from dual;

View created.

SQL> select * from v1;

A C
- -
a b

1 row selected.

SQL> create or replace view v1(a,b) as select 'a' a,'b' b from dual;

View created.

SQL> select * from v1;

A C
- -
a b

1 row selected.



на 19.9 баг есть, на 18.5 и 11.2 - нет. Остальное не проверял
...
Рейтинг: 0 / 0
28.04.2021, 09:48
    #40066568
most23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
Sayan Malakshinov,
вот вам забавно, а я столкнулся с диким глюком - utl_file при попытке создать файл с расширением, содержащим букву "l", т.е. .xml например, эту букву 'l' просто игнорировал, т.е. расширение получалось '.xm' и можете застрелиться. Причем что характерно, воспроизводилось на _некоторых_ environments, т.е. у нас есть например OADEV1, OADEV2...OADEV6, и на 4х из 6ти это воспроизводилось, на остальных - нет. И все эти environments были подняты на одной и той же машине, иначе я бы заподозрил глюк операционки. Oracle 19, на линуксе. Причем я прогнал весь алфавит - глючило только на букве l (ну, строчной L).
Было подтверждено другими девелоперами.
...
Рейтинг: 0 / 0
28.04.2021, 10:56
    #40066598
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
Sayan Malakshinov
Код: plsql
1.
create or replace view v1(a,b) as select 'a' a,'b' b from dual/*just to change query text*/;


Завабно. А в вариантах
Код: plsql
1.
2.
create or replace view v1 as select 'a' a,'b' b from dual;
create or replace view v1(a,b) as select 'a','b' from dual;


глюк сохраняется?
...
Рейтинг: 0 / 0
28.04.2021, 15:05
    #40066757
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
andrey_anonymous
Код: plsql
1.
create or replace view v1 as select 'a' a,'b' b from dual;

да


andrey_anonymous
Код: plsql
1.
create or replace view v1(a,b) as select 'a','b' from dual;

нет, т.к. текст запроса меняется
...
Рейтинг: 0 / 0
28.04.2021, 15:06
    #40066758
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
most23
Sayan Malakshinov,
вот вам забавно, а я столкнулся с диким глюком - utl_file при попытке создать файл с расширением, содержащим букву "l", т.е. .xml например, эту букву 'l' просто игнорировал, т.е. расширение получалось '.xm' и можете застрелиться. Причем что характерно, воспроизводилось на _некоторых_ environments, т.е. у нас есть например OADEV1, OADEV2...OADEV6, и на 4х из 6ти это воспроизводилось, на остальных - нет. И все эти environments были подняты на одной и той же машине, иначе я бы заподозрил глюк операционки. Oracle 19, на линуксе. Причем я прогнал весь алфавит - глючило только на букве l (ну, строчной L).
Было подтверждено другими девелоперами.
баг зарегистрировали? есть его номер?
...
Рейтинг: 0 / 0
28.04.2021, 16:00
    #40066791
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
Sayan Malakshinov
andrey_anonymous
Код: plsql
1.
create or replace view v1 as select 'a' a,'b' b from dual;


да

Хочешь сказать, что последовательность команд
Код: plsql
1.
2.
create or replace view v1 as select 'a' b,'b' a from dual;
create or replace view v1 as select 'a' a,'b' b from dual;


приведет к неверному результату?
...
Рейтинг: 0 / 0
28.04.2021, 16:03
    #40066792
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
andrey_anonymous,

нет же... речь про неизменный текст запроса: если изменяется описание столбцов вьюхи в ее определении, но не изменяется текст запроса, то оракл игнорит изменения.
...
Рейтинг: 0 / 0
28.04.2021, 16:10
    #40066794
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
Sayan Malakshinov
если изменяется описание столбцов вьюхи в ее определении, но не изменяется текст запроса, то оракл игнорит изменения.

...а ответил "да", я и удивился.
...
Рейтинг: 0 / 0
28.04.2021, 16:12
    #40066795
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
andrey_anonymous,

Я думал ты имел ввиду добавить их к моему тест кейсу, а не сравнить между собой :)
...
Рейтинг: 0 / 0
28.04.2021, 18:15
    #40066872
SeaGate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
Sayan Malakshinov,

1. ожидаемо, что проблема не воспроизводится с minimal supplemental logging в 19.9-19.11.
2. проблему можно воспроизвести в 11.2 с event 10520 level 1. Возможно, кто-то решил сделать это новым default. Отключение в новых версиях не помогает избежать проблемы.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
SQL> conn tc/tc
Connected.
SQL>
SQL> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0      Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

SQL>
SQL> alter session set events '10520 level 1';

Session altered.

SQL>
SQL> select supplemental_log_data_min from v$database;

SUPPLEME
--------
NO

SQL>
SQL> drop view v1;

View dropped.

SQL> create or replace view v1(b,a) as select 'a' a,'b' b from dual;

View created.

SQL>
SQL> select * from v1;

B A
- -
a b

SQL>
SQL> -- пытаются исправить:
SQL>
SQL> create or replace view v1(a,b) as select 'a' a,'b' b from dual;

View created.

SQL>
SQL> -- но ничего не меняется:
SQL> select * from v1;

B A
- -
a b

SQL>
SQL> -- пробуем другой вариант:
SQL> alter view v1 compile;

View altered.

SQL>
SQL> -- все равно ничего не меняется:
SQL> select * from v1;

B A
- -
a b

SQL>
SQL> -- приходится менять текст запроса:
SQL> create or replace view v1(a,b) as select 'a' a,'b' b from dual/*just to change query text*/;

View created.

SQL>
SQL> -- наконец, все ок:
SQL> select * from v1;

A B
- -
a b

SQL>
SQL> select value from v$diag_info where name='Default Trace File';

VALUE
--------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/ora11/ora111/trace/ora111_ora_8959.trc

SQL>
SQL> !$ORACLE_HOME/OPatch/opatch lspatches
27735020;OCW Patch Set Update : 11.2.0.4.181016 (27735020)
28204707;Database Patch Set Update : 11.2.0.4.181016 (28204707)

OPatch succeeded.

SQL> !oerr ora 10520
10520, 00000, "recreate view only if definition has changed"
// *Cause:
// *Action:  Set this event only under the supervision of Oracle development
// *Comment: Changes behaviour of create or replace view,
//           comparing the new definition to the old prior to recreating the
//           object.  Creation is skipped if old and new definitions match
//           (ie. object has not changed).  No level number required.

...
Рейтинг: 0 / 0
28.04.2021, 18:24
    #40066884
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
SeaGate
в 11.2 с event 10520 level 1. Возможно, кто-то решил сделать это новым default.
шикарно :D отпишись мне в твиттере https://twitter.com/dbms_xtender/status/1387181063735320579
...
Рейтинг: 0 / 0
28.04.2021, 19:07
    #40066932
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
SeaGate
1. ожидаемо, что проблема не воспроизводится с minimal supplemental logging в 19.9-19.11.

Не догнал. При чем здесь supplemental logging?
...
Рейтинг: 0 / 0
28.04.2021, 21:13
    #40066989
SeaGate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
andrey_anonymousНе догнал. При чем здесь supplemental logging?
С:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
SQL> conn / as sysdba
Connected.
SQL>
SQL> alter database add supplemental log data;

Database altered.

SQL>
SQL> alter session set container=pdb1;

Session altered.

SQL>
SQL> drop user tc cascade;

User dropped.

SQL>
SQL> grant create session, select_catalog_role, create view to tc identified by tc;

Grant succeeded.

SQL>
SQL> conn tc/tc@rac1:1522/pdb1
Connected.
SQL>
SQL> select banner_full from v$version;

BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.11.0.0.0


SQL>
SQL> select supplemental_log_data_min from v$database;

SUPPLEME
--------
YES

SQL>
SQL> create or replace view v1(b,a) as select 'a' a,'b' b from dual;

View created.

SQL>
SQL> select * from v1;

B A
- -
a b

SQL>
SQL> -- пытаются исправить:
SQL>
SQL> create or replace view v1(a,b) as select 'a' a,'b' b from dual;

View created.

SQL>
SQL> -- но ничего не меняется:
SQL> select * from v1;

A B
- -
a b

SQL>
SQL> -- пробуем другой вариант:
SQL> alter view v1 compile;

View altered.

SQL>
SQL> -- все равно ничего не меняется:
SQL> select * from v1;

A B
- -
a b

SQL>
SQL> -- приходится менять текст запроса:
SQL> create or replace view v1(a,b) as select 'a' a,'b' b from dual/*just to change query text*/;

View created.

SQL>
SQL> -- наконец, все ок:
SQL> select * from v1;

A B
- -
a b

SQL>
SQL> !$ORACLE_HOME/OPatch/opatch lspatches
32579761;OCW RELEASE UPDATE 19.11.0.0.0 (32579761)
32545013;Database Release Update : 19.11.0.0.210420 (32545013)
32067171;OJVM RELEASE UPDATE: 19.10.0.0.210119 (32067171)

OPatch succeeded.


Без:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
SQL> conn / as sysdba
Connected.
SQL>
SQL> alter database drop supplemental log data;

Database altered.

SQL>
SQL> alter session set container=pdb1;

Session altered.

SQL>
SQL> drop user tc cascade;

User dropped.

SQL>
SQL> grant create session, select_catalog_role, create view to tc identified by tc;

Grant succeeded.

SQL>
SQL> conn tc/tc@rac1:1522/pdb1
Connected.
SQL>
SQL> select banner_full from v$version;

BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.11.0.0.0


SQL>
SQL> select supplemental_log_data_min from v$database;

SUPPLEME
--------
NO

SQL>
SQL> create or replace view v1(b,a) as select 'a' a,'b' b from dual;

View created.

SQL>
SQL> select * from v1;

B A
- -
a b

SQL>
SQL> -- пытаются исправить:
SQL>
SQL> create or replace view v1(a,b) as select 'a' a,'b' b from dual;

View created.

SQL>
SQL> -- но ничего не меняется:
SQL> select * from v1;

B A
- -
a b

SQL>
SQL> -- пробуем другой вариант:
SQL> alter view v1 compile;

View altered.

SQL>
SQL> -- все равно ничего не меняется:
SQL> select * from v1;

B A
- -
a b

SQL>
SQL> -- приходится менять текст запроса:
SQL> create or replace view v1(a,b) as select 'a' a,'b' b from dual/*just to change query text*/;

View created.

SQL>
SQL> -- наконец, все ок:
SQL> select * from v1;

A B
- -
a b

SQL>
SQL> !$ORACLE_HOME/OPatch/opatch lspatches
32579761;OCW RELEASE UPDATE 19.11.0.0.0 (32579761)
32545013;Database Release Update : 19.11.0.0.210420 (32545013)
32067171;OJVM RELEASE UPDATE: 19.10.0.0.210119 (32067171)

OPatch succeeded.


Мое "ожидаемо" относилось к тому факту, что некоторые оптимизации отключаются при supplemental logging.
Классический пример, это downgrade некоторых операций к блокирующим при supplemental logging: https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/Automatic-and-Manual-Locking-Mechanisms-During-SQL-Operations.html#GUID-0304C4AA-BD28-4C2A-B7F5-267532FB9499

Судя по тестам выше, CREATE OR REPLACE VIEW также работает по-разному в зависимости от supplemental logging.
Для чего CREATE VIEW в репликации?
Например, Logical Standby поддерживает CREATE VIEW: https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/data-type-ddl-support-on-logical-standby-databases.html#GUID-1595A660-6790-436A-BB84-D74C9187D8AE
В целом, это выглядит как некоторое ограничение существующей имплементации, что CREATE OR REPLACE VIEW не использует ряд "оптимизаций" при включенном minimal supplemental logging.
...
Рейтинг: 0 / 0
28.04.2021, 21:37
    #40066996
most23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
Sayan Malakshinov
most23
Sayan Malakshinov,
вот вам забавно, а я столкнулся с диким глюком - utl_file при попытке создать файл с расширением, содержащим букву "l", т.е. .xml например, эту букву 'l' просто игнорировал, т.е. расширение получалось '.xm' и можете застрелиться. Причем что характерно, воспроизводилось на _некоторых_ environments, т.е. у нас есть например OADEV1, OADEV2...OADEV6, и на 4х из 6ти это воспроизводилось, на остальных - нет. И все эти environments были подняты на одной и той же машине, иначе я бы заподозрил глюк операционки. Oracle 19, на линуксе. Причем я прогнал весь алфавит - глючило только на букве l (ну, строчной L).
Было подтверждено другими девелоперами.
баг зарегистрировали? есть его номер?

Я не регистрирую баги. Чтобы этим занялся Oracle, нужно создавать test case с воспроизводимостью, а у нас даже на одной машине он не всегда воспроизводится. Мне за эти хлопоты не платят, я плюнул и написал обход, создавал файл с другим расширением а потом из скрипта его переименовывал.
...
Рейтинг: 0 / 0
29.04.2021, 00:34
    #40067035
most23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
вот специально перерыл свои старые файлы, нашёл про этот баг.
Я запамятовал когда писал что глючит буква 'l', на самом деле это буква 's' (строчная, прописная S без проблем)
баг проявляется лишь в extension, имя файла всегда создается правильное, включая и букву 's'
Простейший код:

Код: plsql
1.
2.
3.
4.
5.
declare output utl_file.file_type;
BEGIN
   output:=utl_file.fopen('TMP_DIR','abcd.slk','W',32000);
   utl_file.fclose(output);
END;



Вот сейчас проверил,
на одном из трех environments создаётся файл abcd.lk, на остальных - abcd.slk

все три базы на одной машине, TMP_DIR у всех тоже одна и та же общая на всех.
У всех трех одинаковые параметры:
Oracle 12c Enterprise 12.1.0.2.0 64 bit
port_string x86_64/Linux 2.4.xx
...
Рейтинг: 0 / 0
29.04.2021, 02:00
    #40067041
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
most23,

что strace на проблемном инстансе на это показывает:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
declare 
  output utl_file.file_type;
  fname varchar2(20):='abcd.slk';
BEGIN
   output:=utl_file.fopen('TMP_DIR',fname,'W',32000);
   utl_file.put_line(output, fname);
   utl_file.fclose(output);
END;


и что в файлик записалось?

и так, просто на всякий случай, еще бы трассу 10046 и вывод dbms_hprof.
...
Рейтинг: 0 / 0
29.04.2021, 02:19
    #40067042
most23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
Sayan Malakshinov
most23,

и что в файлик записалось?

и так, просто на всякий случай, еще бы трассу 10046 и вывод dbms_hprof.

код посмотрите, файл создается пустым.
нафиг мне копаться в трассировках,
в production это не воспроизводится, да и хер с ним. У меня между прочим timeframe есть и тратить время на эту дичь.
А DBA этим заниматься не будет в принципе, он для такого слишком велик (да и туп к тому же).
Оказалось, что .slk файлы там и не нужны, новый ексель перестал их понимать и теперь сейвим просто .xls
баг вылез просто в процессе разборки почему .slk не открываются, это потому что говна из MS убрали эти файлы из Excel по умолчанию. Чтобы значить девелоперы не дай бог без работы не сидели.
Просто пример диких оракловских багов.
...
Рейтинг: 0 / 0
29.04.2021, 02:32
    #40067045
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
most23
пример диких оракловских багов.
нет, не пример. Так просто сплетня, какие-то неподтвержденные слухи...
...
Рейтинг: 0 / 0
06.05.2021, 16:38
    #40068782
leonx2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
Sayan Malakshinov,

Bug 32743290 - CREATE OR REPLACE VIEW DOESN'T WORK PROPERLY IN ORACLE DATABASE 19.9
...
Рейтинг: 0 / 0
06.05.2021, 16:44
    #40068783
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Забавный баг на Oracle 19: create or replace view .. (...) as
leonx2
Sayan Malakshinov,

Bug 32743290 - CREATE OR REPLACE VIEW DOESN'T WORK PROPERLY IN ORACLE DATABASE 19.9
класс! Очередной непубличный баг, но хоть патчики доступны, причём с 19.7 по 19.11, и в бандлы включать не хотят наверное тоже фиксед в 21
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Забавный баг на Oracle 19: create or replace view .. (...) as / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]