Réécrivez le filtre maxscale en utilisant awk
P粉511896716
P粉511896716 2024-01-16 18:26:12
0
1
368

Les règles de réécriture suivantes fonctionnent comme prévu :

%%
regex_grammar: Awk
case_sensitive: false
ignore_whitespace: true
%
SELECT msg FROM mytable WHERE id = 123
%
SELECT msg FROM mytable WHERE id = sha1(123)

Ma question maintenant est de savoir comment écrire cette requête en utilisant des espaces réservés dans regex_grammer : Awk. Si je sais cela, je peux faire une percée sur le prochain problème. Mon objectif actuel est de réécrire la requête suivante :

Input:
SELECT msg FROM mytable WHERE id IN (123,456,769)

Output:
SELECT msg FROM mytable WHERE id IN (sha1(123),sha1(456),sha1(769))

Je pense que cela ne fonctionne qu'avec regex_grammar Awk, pas Native. Ai-je raison?

C'est la seule documentation que j'ai trouvée : https://mariadb.com/kb/en/mariadb-maxscale-2208-rewrite-filter/

Je suis également ouvert à d'autres suggestions ou outils ! Maxscale est la solution la plus prometteuse pour moi.

P粉511896716
P粉511896716

répondre à tous(1)
P粉316890884

Le type de remplacement que vous effectuez nécessite un remplacement répété et le nombre de valeurs n'est pas fixe. Les filtres de réécriture conviennent aux cas d'utilisation plus simples où le modèle est fixe et où une correspondance complexe n'est pas requise.

Cependant, cela est toujours possible via l'appel de fonction regexfilter 来完成,它允许更自由地使用正则表达式。以下正则表达式过滤器配置应处理 IN 列表中的简单值,并将它们包装在 SHA1 dans MaxScale.

[regex]
type=filter
module=regexfilter
match=/(?i)(IN\s+\(|,)\s*([^,]+)\s*/
replace= SHA1()

C'est la page regex101.com que j'ai utilisée pour le tester.

Veuillez noter que cela ne fonctionne pas avec les chaînes contenant des virgules intégrées, ce qui signifie que ce n'est pas vraiment une solution universelle.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!