--
michal palenik
www.freemap.sk
www.oma.sk
--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny PostgreSQL-cz ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/YO2LD2pYY7IFuOxW%40tanicka.iz.sk.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CAFj8pRB-U_4U7tqxp%2BGW6mhJEHFNdGN%3DujVgJTiuKY-0PTAX%3DA%40mail.gmail.com.
Ahoj,Jelikoz mam podezreni, ze to chces pouzivat opakovane, tak bych doporucil misto DROP ... CASCADE pridat explicitni DROP toho view. V budoucnu to usetri prekvapeni, ze by to droplo neco dalsiho s cim tento script nepocita.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CAJj4Mw4ThdVhAEHFKBtDf_Pei_DefQVRW69W3htAHtWo_iZqiw%40mail.gmail.com.
On Tue, Jul 13, 2021 at 02:48:22PM +0200, Pavel Stehule wrote:
> út 13. 7. 2021 v 14:46 odesílatel Michal Páleník <michal....@freemap.sk>
> napsal:
>
> > ahojte
> >
> > snažím sa v rámci transakcie nahradiť tabuľku inou (drop+create). toto
> > ale zlyhá, lebo tabuľka je súčasťou view. našiel som zopár stránok kde
> > vcelku vysvetľujú prečo drop ide kvázi mimo transakcie, ale všetky sú
> > veľa rokov staré (postgres 9*). predpokladám, že dôvody stále platia.
> >
> > dáta prehadzuje z backendového serveru, kde ich zopár hodín ráta. viem
> > to zmeniť na truncate+copy ale občasne mením stĺpce a drop+create je
> > blbovzdornejšie.
> >
> > (vlastne neviem akú mám otázku, len či to je naozaj tak)
> >
> > skrátený sql, ktorý zlyhá na drop table:
> >
> > create table tmp_dd1 (id int);
> > create view tmp_dd2 as select * from tmp_dd1;
> >
> > begin;
> > drop table tmp_dd1;
> > -- cannot drop table tmp_dd1 because other objects depend on it
> > create table tmp_dd1 (id int);
> > commit;
> >
> >
> cascade nepomuze?
>
pomôže, len po skončení chcem mať view znova funkčný, teda by som ho
musel nanovo vytvoriť.
Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/YO3Dcof2nK%2B7lSTX%40tanicka.iz.sk.
> > > cascade nepomuze?
> > >
> >
> > pomôže, len po skončení chcem mať view znova funkčný, teda by som ho
> > musel nanovo vytvoriť.
> >
>
> tohle v Postgresu nejde. Interne je pohled ulozeny jako AST, kde uz jsou
> reference nahrazene unikatnimi ciselnymi identifikatory. Pokud dropnu
> tabulku, musim dropnout i zavisle objekty, ponevadz jinak by ty reference
> byly neplatne. Vy sice pohled vidite jako SQL, ale to je dekompilace z AST
> do SQL. SQL se uklada napriklad v PL/pgSQL (znam zdrojovy kod procedury i
> zdrojove kody jednotlivych SQL prikazu, i raw vystup z parseru), a tam je
> system schopny si refreshnout reference, pokud budou neplatne. U pohledu to
> ale nikdo jeste nenapsal.
takže v princípe by to išlo, ale ešte nikoho to netrápilo tak, aby to
doprogramoval.
druhé čo by ma potešilo je
v CREATE TABLE aby bolo aj
GENERATED ALWAYS AS ( generation_expr ) VIRTUAL
(a nie STORED)
Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/YO3XJ5X/cDWC4dJx%40tanicka.iz.sk.
Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/YO3Dcof2nK%2B7lSTX%40tanicka.iz.sk.
On Wed, Jul 14, 2021 at 01:19:20AM +0200, Petr Boháč wrote:
> Ahoj,
> jeste jedna poznamka, jestli na ty tabulce mas nejakej jinej index, nez jen
> primarni klic, tak je pravdepodobne vyhodnejsi delat drop tabulky, import
> dat a pak indexace. Zejmena GIN a GIST indexy hromadne importy uplne
> rozsekaj a je treba udelat reindex.
aj preto robím drop + create.
> A stejne jako kolega nechapu, proc mas
> problem s vytvarenim toho view. To chleba nezere a je to prakticky
> instantni.
lebo ten view (resp 2x view) robím inde a bojím sa, že ich zabudnem
niekedy urobiť. vlastne ten view je taký master view, čo spája asi 15
tabuliek do jednej tabuľky/view (teda by som musel 15x nezabudnúť
znovaurobiť views).
tento view má oveľa menej stĺpcov ako podkladové tabuľky plus má nejaké virtuálne.
Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/YO6GJPLZyjLp%2B9zu%40tanicka.iz.sk.
Takze vubec vymyslet jak by se to melo chovat je na bednu. A mam pocit, ze se do toho ted nikdo nema (a ani se nedivim). Puvodne systemove tabulky nebyly multigeneracni - ale ted uz jsou.
--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CA%2B8wVNU6djGDTnqKgR2OObuqQt6uROcEL3aHncgL2nm4WWbvRQ%40mail.gmail.com.
On Wed, Jul 14, 2021 at 08:49:02AM +0200, Pavel Stehule wrote:
> > lebo ten view (resp 2x view) robím inde a bojím sa, že ich zabudnem
> > niekedy urobiť. vlastne ten view je taký master view, čo spája asi 15
> > tabuliek do jednej tabuľky/view (teda by som musel 15x nezabudnúť
> > znovaurobiť views).
> > tento view má oveľa menej stĺpcov ako podkladové tabuľky plus má nejaké
> > virtuálne.
> >
>
> mozna by se ti hodila dedicnost
>
> https://www.postgresql.org/docs/current/tutorial-inheritance.html
takže inheritance je všeobcecnejšie ako partitioning ale kopu vecí
nevie automaticky ako partition (insert do správnej tabuľky, lepšia
optimalizácia planneru)
asi nevie povedať, z ktorej tabuľky ťahám - nejaký virtuálny stĺpec aby
som vedel či mi dáta prišli z tabuľky cities alebe capitals (napr ak mám
samostatné tabuľky na pobočky aby som vedel v ktorej pobočke to našiel,
podľa názvu tabuľky bez nejakých špeci stĺpcov) (ale to nevie ani
partitioning) (?)
a asi nevie virtuálne stĺpce - napr mám tabuľky cities_uk (elevation
in meters) a cities_us (elevation in feet) tak v tabuľke cities bude
(extra) stĺpec elevation vždy v metroch.
>
>
>
> > aj som dumal urobiť to ako partitions ale kazia mi to tie neexistujúce
> > virtuálne stĺpce (napr pospájanie stĺpcov do ľudského popisu, samozrejme
> > to spájanie je v každej tabuľke iné).
> >
> > michal
--
michal palenik
www.freemap.sk
www.oma.sk
--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny PostgreSQL-cz ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/YO7LNpnOihZ0kW%2Ba%40tanicka.iz.sk.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/CAFj8pRCGoAdcUcK1drrzB4F1EogahsiZ3GYoqg4-nbjunbEkbA%40mail.gmail.com.