2011-05-11 41 views
4

真正進入MySQL並且我掌握了一個關於掌握MySQL的一個方面的想法是收集MySQL單詞的完整列表。其中一個例子可能是Reserved Words列表,雖然看起來並不完整。例如:CONCAT,CRC32等如何編譯MySQL「Words」的完整列表

看起來很奇怪,我想這樣的列表可能存在,或者甚至有可能會產生它的查詢,和/或從中提取它的方法MySQL的源代碼。

+0

好,取決於你的「保留的定義話」。從技術上說,CONCAT和CRC32是[函數](http://dev.mysql.com/doc/refman/5.0/en/functions.html)。然後,在上面,是[數據類型](http://dev.mysql.com/doc/refman/5.0/en/data-types.html)。 – 2011-05-11 01:56:39

+0

@Brad Christie:我對MySQL字的定義是通過MySQL命令或系統命令(給定正確的上下文)輸入的任何字符串對MySQL有意義。對「保留字」的引用就是這樣,對它的引用僅僅是一個對MySQL有意義的單詞列表的例子;它不完整,我正在尋找一個完整的列表。很明顯,我知道在線手冊,但這不是我要找的。我在一個地方尋找MySQL單詞列表。感謝評論!如果您還有其他問題,請告訴我。 – blunders 2011-05-11 02:05:31

+0

在一個健全的數據庫系統中,我確信會有一個命令。在MySQL中,不是那麼多:) – mikl 2011-05-11 07:24:48

回答

2

它是一種非科學的方法,但我會做的是:

  • 提取物Native_func_registry func_array所有字符串。在

http://bazaar.launchpad.net/~mysql/mysql-server/mysql-trunk/view/head:/sql/item_create.cc

那些查找它的SQL/item_create.cc,e.g應涵蓋內建函數。從 '符號' 和 '功能' 在詞法分析器

http://bazaar.launchpad.net/~mysql/mysql-server/mysql-trunk/view/head:/sql/lex.h

  • 提取符號

    %令牌SOMETOKEN

除了當令牌有_SYM後綴(它們是由SQL/lex.h覆蓋)

結合所有這些,所得集可能走近了:)

+0

vaintroub:超級,謝謝 - 加上最後一個理由來看看來源... :-) ...歡呼! – blunders 2011-05-14 02:03:14

相關問題