Open Halama opened 5 years ago
Hi Ondra, Do you want us to keep this case opened for now or shall we proceed to close it? I presume we have concluded that injecting double quotes in object identifiers isn't possible. Regards, Jawwad
Takže idenitifkátor uvozovku obsahovat nemůže. Tím pádem by to zdvojení uvozovky v quoteIdentifier mělo být zbytečný.
Naopak bysme měli vyhazovat exception v případě že bude předán indentifikátor s uvozovkou?
Doplním, že IDENTIFIER nepobere ani jednoduchou ani dvojitou.
INSERT INTO IDENTIFIER('my''table') VALUES (...);
SQL compilation error: error line 1 at position 23 invalid identifier ''my''table''
(two single quotes)
INSERT INTO IDENTIFIER('my"table') VALUES (...);
SQL compilation error: error line 1 at position 23 invalid identifier ''my"table''
(double quote)
Obyčejný uzavření identifikátoru do uvozovek umožní jednoduchou uvozovku, dvojitou ne.
INSERT INTO "my'table" VALUES (...);
Ten identifier musíš používat takhle:
INSERT INTO IDENTIFIER("my'table") VALUES (...);
a pobere to tedy vše kromě dvojíté uvozovky.
INSERT INTO IDENTIFIER("💩💩💩💩") VALUES (...);
Dvojitý uvozovky do IDENTIFIER? Podle dokumentace bych to nečekal
https://docs.snowflake.net/manuals/sql-reference/identifier-literal.html
SELECT * FROM IDENTIFIER("test'test");
SQL compilation error: syntax error line 1 at position 25 unexpected '"test'test"'.
omg, sorry nevyzkoušel jsem si to předtím a překlepl se:
create table IDENTIFIER('"my\'table"') (id varchar);
je to i v tech examples tady https://docs.snowflake.net/manuals/sql-reference/identifier-literal.html
-- case-sensitive table name specified in a double-quoted string
create or replace table identifier('"my_table"') (c1 number);
Dvojitou uvozovku v identifikátoru quotujeme jejích zdvojením. Snowflake si s tím ale ani tak neporadí. Zatím není jasné jestli to je feature. Ticket na SNFLK https://support.snowflake.net/s/case/5000Z000013XHyLQAW/quote-character
Pokud ji nepodporuje tak bysme myslím měly vyhazovat error při zadání takového objektu.