From a5f7622ac446592efb52efdd117defa3d0d65dcb Mon Sep 17 00:00:00 2001 From: cxl Date: Wed, 10 Jun 2009 12:50:17 +0000 Subject: [PATCH] Sqlite3: fixed problems with date theide: sql hightlighting adjustment (keywords reduced) git-svn-id: svn://ultimatepp.org/upp/trunk@1293 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CodeEditor/Highlight.cpp | 87 ++++------------------------ uppsrc/plugin/sqlite3/Sqlite3.h | 1 + uppsrc/plugin/sqlite3/Sqlite3upp.cpp | 11 ++++ 3 files changed, 24 insertions(+), 75 deletions(-) diff --git a/uppsrc/CodeEditor/Highlight.cpp b/uppsrc/CodeEditor/Highlight.cpp index e3346dc00..9d12bb17c 100644 --- a/uppsrc/CodeEditor/Highlight.cpp +++ b/uppsrc/CodeEditor/Highlight.cpp @@ -393,81 +393,18 @@ void CodeEditor::InitKeywords() NULL }; static const char *sql[] = { - "ACCESSIBLE", "ADD", "ALL", - "ALTER", "ANALYZE", "AND", - "AS", "ASC", "ASENSITIVE", - "BEFORE", "BETWEEN", "BIGINT", - "BINARY", "BLOB", "BOTH", "BEGIN", "END", - "BY", "CALL", "CASCADE", - "CASE", "CHANGE", "CHAR", - "CHARACTER", "CHECK", "COLLATE", - "COLUMN", "CONDITION", "CONSTRAINT", - "CONTINUE", "CONVERT", "CREATE", - "CROSS", "CURRENT_DATE", "CURRENT_TIME", - "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", - "DATABASE", "DATABASES", "DAY_HOUR", - "DAY_MICROSECOND", "DAY_MINUTE", "DAY_SECOND", - "DEC", "DECIMAL", "DECLARE", - "DEFAULT", "DELAYED", "DELETE", - "DESC", "DESCRIBE", "DETERMINISTIC", - "DISTINCT", "DISTINCTROW", "DIV", - "DOUBLE", "DROP", "DUAL", - "EACH", "ELSE", "ELSEIF", - "ENCLOSED", "ESCAPED", "EXISTS", - "EXIT", "EXPLAIN", "FALSE", - "FETCH", "FLOAT", "FLOAT4", - "FLOAT8", "FOR", "FORCE", - "FOREIGN", "FROM", "FULLTEXT", - "GRANT", "GROUP", "HAVING", - "HIGH_PRIORITY", "HOUR_MICROSECOND", "HOUR_MINUTE", - "HOUR_SECOND", "IF", "IGNORE", - "IN", "INDEX", "INFILE", - "INNER", "INOUT", "INSENSITIVE", - "INSERT", "INT", "INT1", - "INT2", "INT3", "INT4", - "INT8", "INTEGER", "INTERVAL", - "INTO", "IS", "ITERATE", - "JOIN", "KEY", "KEYS", - "KILL", "LEADING", "LEAVE", - "LEFT", "LIKE", "LIMIT", - "LINEAR", "LINES", "LOAD", - "LOCALTIME", "LOCALTIMESTAMP", "LOCK", - "LONG", "LONGBLOB", "LONGTEXT", - "LOOP", "LOW_PRIORITY", "MASTER_SSL_VERIFY_SERVER_CERT", - "MATCH", "MEDIUMBLOB", "MEDIUMINT", - "MEDIUMTEXT", "MIDDLEINT", "MINUTE_MICROSECOND", - "MINUTE_SECOND", "MOD", "MODIFIES", - "NATURAL", "NOT", "NO_WRITE_TO_BINLOG", - "NULL", "NUMERIC", "ON", - "OPTIMIZE", "OPTION", "OPTIONALLY", - "OR", "ORDER", "OUT", - "OUTER", "OUTFILE", "PRECISION", - "PRIMARY", "PROCEDURE", "PURGE", - "RANGE", "READ", "READS", - "READ_WRITE", "REAL", "REFERENCES", - "REGEXP", "RELEASE", "RENAME", - "REPEAT", "REPLACE", "REQUIRE", - "RESTRICT", "RETURN", "REVOKE", - "RIGHT", "RLIKE", "SCHEMA", - "SCHEMAS", "SECOND_MICROSECOND", "SELECT", - "SENSITIVE", "SEPARATOR", "SET", - "SHOW", "SMALLINT", "SPATIAL", - "SPECIFIC", "SQL", "SQLEXCEPTION", - "SQLSTATE", "SQLWARNING", "SQL_BIG_RESULT", - "SQL_CALC_FOUND_ROWS", "SQL_SMALL_RESULT", "SSL", - "STARTING", "STRAIGHT_JOIN", "TABLE", - "TERMINATED", "THEN", "TINYBLOB", - "TINYINT", "TINYTEXT", "TO", - "TRAILING", "TRIGGER", "TRUE", - "UNDO", "UNION", "UNIQUE", - "UNLOCK", "UNSIGNED", "UPDATE", - "USAGE", "USE", "USING", - "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP", - "VALUES", "VARBINARY", "VARCHAR", - "VARCHARACTER", "VARYING", "WHEN", - "WHERE", "WHILE", "WITH", - "WRITE", "XOR", "YEAR_MONTH", - "ZEROFILL", + "ABORT", "ADD", "AFTER", "ALL", "ALTER", "ANALYZE", "AND", "AS", "ATTACH", + "AUTOINCREMENT", "BEFORE", "BEGIN", "BETWEEN", "BY", "CASCADE", "CASE", "CHECK", + "COLLATE", "COLUMN", "COMMIT", "CONFLICT", "CONSTRAINT", "CREATE", "CROSS", + "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "DATABASE", "DEFAULT", + "DELETE", "DESC", "DETACH", "DISTINCT", "DROP", "EACH", "END", "EXCEPT", + "EXCLUSIVE", "EXISTS", "FOREIGN", "FROM", "FULL", "GROUP", "HAVING", + "IN", "INDEX", "INITIALLY", "INNER", "INSERT", "INSTEAD", "INTERSECT", "INTO", + "IS", "ISNULL", "JOIN", "KEY", "LEFT", "LIKE", "LIMIT", "MATCH", "NATURAL", "NOT", + "NOTNULL", "NULL", "OF", "OFFSET", "ON", "OR", "ORDER", "OUTER", "PRIMARY", "RAISE", + "REFERENCES", "REPLACE", "RESTRICT", "UPDATE", "SET", "WHERE", "NEW", "OLD", "TRIGGER", + "SELECT", + NULL }; static const char *javan[] = { NULL diff --git a/uppsrc/plugin/sqlite3/Sqlite3.h b/uppsrc/plugin/sqlite3/Sqlite3.h index aad9f0dde..1faed255d 100644 --- a/uppsrc/plugin/sqlite3/Sqlite3.h +++ b/uppsrc/plugin/sqlite3/Sqlite3.h @@ -42,6 +42,7 @@ private: Link clink; void Reset(); + void Cancel(); public: bool Open(const char *filename); diff --git a/uppsrc/plugin/sqlite3/Sqlite3upp.cpp b/uppsrc/plugin/sqlite3/Sqlite3upp.cpp index 20e0d1f1d..0bd51f118 100644 --- a/uppsrc/plugin/sqlite3/Sqlite3upp.cpp +++ b/uppsrc/plugin/sqlite3/Sqlite3upp.cpp @@ -251,6 +251,9 @@ void Sqlite3Connection::GetColumn(int i, Ref f) const { const char *s = (const char *)sqlite3_column_text(current_stmt, i); if(strlen(s) >= 19) f = Value(Time(atoi(s), atoi(s + 5), atoi(s + 8), atoi(s + 11), atoi(s + 14), atoi(s + 17))); + else + if(strlen(s) >= 10) + f = Value(ToTime(Date(atoi(s), atoi(s + 5), atoi(s + 8)))); else f = Null; } @@ -319,6 +322,12 @@ void Sqlite3Session::Reset() s->Reset(); } +void Sqlite3Session::Cancel() +{ + for(Sqlite3Connection *s = clink.GetNext(); s != &clink; s = s->GetNext()) + s->Cancel(); +} + Sqlite3Session::Sqlite3Session() { db = NULL; @@ -340,6 +349,7 @@ void Sqlite3Session::Begin() { } void Sqlite3Session::Commit() { + Cancel(); static const char commit[] = "COMMIT;"; if(trace) *trace << commit << "\n"; @@ -349,6 +359,7 @@ void Sqlite3Session::Commit() { } void Sqlite3Session::Rollback() { + Cancel(); static const char rollback[] = "ROLLBACK;"; if(trace) *trace << rollback << "\n";