TGViewer
There will be no singularity There will be no singularity @nosingularity · 1.96K subscribers
Post #826 1.68K
​SQL-WTF SQL-TIL snowflake edition

Такое ощущение, что в Snowflake сами не знают что умеет их база.

Недавно выяснилось, что при создании таблиц поддерживается описание типов из ORACLE:
VARCHAR2(100 BYTE),
NVARCHAR2(80)


В документации, конечно, тишина.

Сейчас понадобилось сделать демку с использованием MASKING POLICY. Решил освежить знания по документации. Листаю список ограничений: ... не применяется к виртуальным колонкам ...

WAT? Виртуальные колонки? Откуда в Snowflake виртуальные колонки?
Есть что-нибудь в документации? Есть, но про EXTERNAL TABLE.

А давайте попробуем...
create table vc_test (
key number,
check_sum number as HASH(key)
);

insert into vc_test(key) values (1);
select * from vc_test;

-- 1,-4730168494964875235


oO
Работает!

Так, абажжи...
create table vc_test2(
key number,
check_sum number as (SELECT key FROM vc_test) DEFAULT 1 NOT NULL
);
insert into vc_test2(key) values (1);


И это работает!

А ну-ка...

select * from vc_test2;

-- [42000][1003] SQL compilation error: syntax error line 1 at position 1 unexpected 'SELECT'. syntax error line 1 at position 31 unexpected 'GENERATOR'.


Чивооо? GENERATOR?

SELECT GET_DDL('table', 'VC_TEST2');

-- result:
create or replace TABLE VC_TEST2 (
KEY NUMBER(38,0),
CHECK_SUM NUMBER(38,0) AS ((SELECT 1 AS "KEY" FROM TABLE (GENERATOR)ROWCOUNT => 1, rowCount => 1) GENERATOR)) NOT NULL DEFAULT 1
);


Directed by Frank Slootman

Тейкэвей:
- в snowflake существуют виртуальные колонки для обычных таблиц
- при объявлении засунуть в них можно что угодно, но работать будет не все :)
- значения в колонках не мемоизируются
- с виртуальными колонками многое что нельзя, но несмотря на предыдущий пункт, кластеризацию все-таки можно
More from @nosingularity
  1. Sep 19, 2026fixupx.com/KaiLentit/status/2100629518784328013/video/1
  2. Sep 18, 2026fixupx.com/iam_zachi/status/2100679300756435135
  3. Aug 30, 2026photo post
  4. Aug 25, 2026fixupx.com/meganreyno/status/2091918430374957416
  5. Aug 3, 2026Вышла новость, что Andy Pavlo приняли на борт Clickhouse Inc. Энди довольно известная фигу…
  6. Jul 23, 2026fixupx.com/unclebobmartin/status/2080257779395154409
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →