qlbridge icon indicating copy to clipboard operation
qlbridge copied to clipboard

field type in create statement

Open eturella opened this issue 5 years ago • 0 comments

i need to use float or decimal field. Lexer tag "float" as TokenIdentity when parser need TokenTypeFloat the following test fails using "float" and "float(15)"

verifyTokens(t, CREATE TABLE articles ( ID int(11) NOT NULL AUTO_INCREMENT, value float NOT NULL DEFAULT '', PRIMARY KEY (ID), -- lets put comments in here CONSTRAINT emails_fk FOREIGN KEY (Email) REFERENCES Emails (Email) ) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8 WITH stuff = "hello";, []Token{ tv(TokenCreate, "CREATE"), tv(TokenTable, "TABLE"), tv(TokenIdentity, "articles"), tv(TokenLeftParenthesis, "("), tv(TokenIdentity, "ID"), tv(TokenTypeInteger, "int"), tv(TokenLeftParenthesis, "("), tv(TokenInteger, "11"), tv(TokenRightParenthesis, ")"), tv(TokenNegate, "NOT"), tv(TokenNull, "NULL"), tv(TokenIdentity, "AUTO_INCREMENT"), tv(TokenComma, ","), tv(TokenIdentity, "value"), tv(TokenTypeFloat, "float"), // tv(TokenLeftParenthesis, "("), // tv(TokenInteger, "15"), // tv(TokenRightParenthesis, ")"), tv(TokenNegate, "NOT"), tv(TokenNull, "NULL"), tv(TokenDefault, "DEFAULT"), tv(TokenValue, ""), tv(TokenComma, ","), tv(TokenPrimary, "PRIMARY"), tv(TokenKey, "KEY"), tv(TokenLeftParenthesis, "("), tv(TokenIdentity, "ID"), tv(TokenRightParenthesis, ")"), tv(TokenComma, ","), tv(TokenCommentSingleLine, "--"), tv(TokenComment, " lets put comments in here"), tv(TokenConstraint, "CONSTRAINT"), tv(TokenIdentity, "emails_fk"), tv(TokenForeign, "FOREIGN"), tv(TokenKey, "KEY"), tv(TokenLeftParenthesis, "("), tv(TokenIdentity, "Email"), tv(TokenRightParenthesis, ")"), tv(TokenReferences, "REFERENCES"), tv(TokenIdentity, "Emails"), tv(TokenLeftParenthesis, "("), tv(TokenIdentity, "Email"), tv(TokenRightParenthesis, ")"), tv(TokenRightParenthesis, ")"), tv(TokenEngine, "ENGINE"), tv(TokenEqual, "="), tv(TokenIdentity, "InnoDB"), tv(TokenIdentity, "AUTO_INCREMENT"), tv(TokenEqual, "="), tv(TokenInteger, "4080"), tv(TokenDefault, "DEFAULT"), tv(TokenIdentity, "CHARSET"), tv(TokenEqual, "="), tv(TokenIdentity, "utf8"), tv(TokenWith, "WITH"), tv(TokenIdentity, "stuff"), tv(TokenEqual, "="), tv(TokenValue, "hello"), })

eturella avatar Mar 25 '20 14:03 eturella