[译] 来自 Percona Support Team 的新年祝福!

[译] 来自 Percona Support Team 的新年祝福!

严少安 Lv.6

原文地址: https://www.percona.com/blog/percona-support-team-new-year-greetings/
原文作者: Sveta Smirnova

译文

NYTree.gif

在Percona支持团队,我们每周花几个小时做这样的实验: 短期的集体项目,与工作任务没有直接关系。
我们最近一次的实验是关于即将为冬季假期做准备,或者说我们将准备圣诞树并装饰它。 为此,我们使用了自己最喜欢的工具: MySQL和 ASCII图像 。因此,我们创建了一个函数,并在终端中打印 [圣诞树](https://en.wikipedia .
org/wiki/New_Year_tree) ,并用我们想要的符号装饰它。

例如,要创建一个用星星装饰的三层树,函数调用方法如下:

1
2
3
4
5
6
7
8
9
10
$ mysql ny_tree -e "select ny_tree(3, '*')" --vertical --skip-column-names -s
*************************** 1. row ***************************

/\
/__\
/* \
/____\
/ * \
/______\
||

因为MySQL支持Unicode,您可以使用任何符号,且使符号和空格的宽度一样。例如,您可以用蜡烛装饰你的圣诞树,而不会有点燃你家的风险:

1
2
3
4
5
6
7
8
9
10
11
12
$ mysql ny_tree -e "select ny_tree(4, '🕯')" --vertical --skip-column-names -s
*************************** 1. row ***************************

/\
/__\
/🕯 \
/____\
/🕯 🕯\
/______\
/🕯🕯 🕯 \
/________\
||

您可以将终端的颜色更改为看起来更喜庆的颜色,将终端的大小与树中的层数对齐,并在循环中调用函数以获得动态图像。
例如,本文开头的动图是由以下这个命令实现的:

1
$ for i in `seq 1 1 1000`; do mysql ny_tree -e "select '\\nHappy New 2022 Year\!', ny_tree(12, '⚝')" --vertical --skip-column-names -s; sleep 1; done

我只需调整终端的尺寸并符合树的层数。
ny_tree和两个辅助函数的代码位于 https://github.com/Percona-Lab/ny-tree
我们,Percona支持团队,祝您新年快乐,在新的一年里数据库平稳运行!


译者注

在导入函数时,如果遇到报错:

1
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

则只需调整这个参数即可:set global log_bin_trust_function_creators = true;

本地实测好用!so cool!

1
for i in `seq 1 1 1000`; do mysql -uroot sbtest -e "select '\\n新春快乐,虎年大吉!卧虎藏喵,全力以富!\!', ny_tree(12, '*')" --vertical --skip-column-names -s; sleep 1; done
20220129_175543.jpg

https://github.com/shawn0915/ny-tree

  • Title: [译] 来自 Percona Support Team 的新年祝福!
  • Author: 严少安
  • Created at: 2022-01-29 17:01:23
  • Updated at: 2022-01-29 17:01:23
  • Link: https://shawnyan.cn/2022/mysql/fanyi-percona-support-team-new-year-greetings/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments
On this page