Redshift-formatering
Formatér Amazon Redshift SQL efter Redshifts regler for strenge med backslash-escape, identifikatorer i dobbelte anførselstegn, #temp-tabeller, ::-casts og $$-funktionskroppe. QUALIFY og MINUS bevares som klausuler, MERGE-grene begynder på nye linjer, og lange kolonnelister placeres med én kolonne pr. linje. Uafsluttede strenge og parenteser rapporteres med linje og kolonne, så analytikere og dataingeniører lettere kan gennemgå datavarehuskode.
Ofte stillede spørgsmål
Hvilken Redshift-syntaks genkendes?
Enkeltanførselstegn-strenge med backslash-escape og dobbelte anførselstegn, identifikatorer i dobbelte anførselstegn, #temp-tabelnavne og ::-casts genkendes. Regulære udtryksoperatorer ~ og ~* med deres negerede former samt $$-funktionskroppe med dollartegn bevares intakte.
Hvordan adskiller dette sig fra PostgreSQL-formateringen?
Redshift tog udgangspunkt i PostgreSQL, men adskiller sig på flere punkter: backslashes fungerer som escape-tegn i strenge, # starter et midlertidigt tabelnavn i stedet for at være en operator, og QUALIFY og MINUS er tilgængelige. Denne formatering følger disse regler.
Hvad sker der med UDF-kroppe?
Kroppe af Python- eller SQL-brugerdefinerede funktioner skrevet mellem $$-markører bevares præcis, som de er skrevet. Kun sætningen omkring dem formateres.
Hvilke klausuler får deres egen linje?
SELECT, FROM, WHERE, GROUP BY, HAVING, QUALIFY, ORDER BY, LIMIT og OFFSET begynder på hver deres linje. MINUS, UNION, INTERSECT og EXCEPT adskiller de forespørgsler, de kombinerer.
Understøtter den MERGE?
Ja. WHEN MATCHED- og WHEN NOT MATCHED-grene begynder på nye linjer.
Bevares kommentarer?
Ja. --- og /* */-kommentarer forbliver på deres plads. Kommentarer med flere linjer indrykkes igen, så de passer til det nye layout.
Ændres der på store og små bogstaver i nøgleord?
Nej. Nøgleord og navne beholder den store og lille skrift, du skrev. Kun mellemrum og linjeskift ændres.
Hvilke fejl registreres?
Uafsluttede strenge, citerede identifikatorer, $$-kroppe og blokkommentarer samt ubalancerede parenteser rapporteres hver med linje og kolonne. SQL sendes ikke til din klynge.
Hvor stort kan input være?
Op til 1 MB pr. anmodning og 128 KB pr. sætning. Længere ETL-scripts formateres én sætning ad gangen.
Kan jeg vælge indrykningen, og gemmes mit SQL?
Brug 2 eller 4 mellemrum eller tabulatorer. SQL formateres kun i hukommelsen og gemmes aldrig.