Die nur Stelle, die mir einfällt, wo ein %
in Standard-Postgres verdoppelt werden würde, befindet sich innerhalb des format()
Funktion, die häufig zum Erstellen einer Abfragezeichenfolge für dynamisches SQL verwendet wird. Beispiele hier auf SO vergleichen.
Schwierig bei der Verwendung des Modulo-Operators %
in einer dynamischen Anweisung!
Ich vermute, sie führen hinter den Kulissen dynamisches SQL aus, das sie für den Artikel verallgemeinert und vereinfacht haben. (Der schemaqualifizierte Name der Sequenz ist 'insta5.table_id_seq'
und die Tabelle würde nicht "table" heißen.) Dabei vergaßen sie, den Modulo-Operator "unmaskieren" zu lassen.
Das ist es, was sie tatsächlich ausführen:
EXECUTE format($$SELECT nextval('%I') %% 1024$$, seq_name)
INTO seq_id;