@@ -404,6 +404,51 @@ pysqlite_error_name(int rc)
404404return NULL ;
405405}
406406
407+ static int
408+ add_sequence_constants (PyObject * module ) {
409+ PyObject * kwd ;
410+ const char * _keywords []= {
411+ "ABORT" ,"ACTION" ,"ADD" ,"AFTER" ,"ALL" ,"ALTER" ,"ALWAYS" ,"ANALYZE" ,
412+ "AND" ,"AS" ,"ASC" ,"ATTACH" ,"AUTOINCREMENT" ,"BEFORE" ,"BEGIN" ,
413+ "BETWEEN" ,"BY" ,"CASCADE" ,"CASE" ,"CAST" ,"CHECK" ,"COLLATE" ,"COLUMN" ,
414+ "COMMIT" ,"CONFLICT" ,"CONSTRAINT" ,"CREATE" ,"CROSS" ,"CURRENT" ,
415+ "CURRENT_DATE" ,"CURRENT_TIME" ,"CURRENT_TIMESTAMP" ,"DATABASE" ,"DEFAULT" ,
416+ "DEFERRABLE" ,"DEFERRED" ,"DELETE" ,"DESC" ,"DETACH" ,"DISTINCT" ,"DO" ,
417+ "DROP" ,"EACH" ,"ELSE" ,"END" ,"ESCAPE" ,"EXCEPT" ,"EXCLUDE" ,"EXCLUSIVE" ,
418+ "EXISTS" ,"EXPLAIN" ,"FAIL" ,"FILTER" ,"FIRST" ,"FOLLOWING" ,"FOR" ,
419+ "FOREIGN" ,"FROM" ,"FULL" ,"GENERATED" ,"GLOB" ,"GROUP" ,"GROUPS" ,
420+ "HAVING" ,"IF" ,"IGNORE" ,"IMMEDIATE" ,"IN" ,"INDEX" ,"INDEXED" ,
421+ "INITIALLY" ,"INNER" ,"INSERT" ,"INSTEAD" ,"INTERSECT" ,"INTO" ,"IS" ,
422+ "ISNULL" ,"JOIN" ,"KEY" ,"LAST" ,"LEFT" ,"LIKE" ,"LIMIT" ,"MATCH" ,
423+ "MATERIALIZED" ,"NATURAL" ,"NO" ,"NOT" ,"NOTHING" ,"NOTNULL" ,"NULL" ,
424+ "NULLS" ,"OF" ,"OFFSET" ,"ON" ,"OR" ,"ORDER" ,"OTHERS" ,"OUTER" ,"OVER" ,
425+ "PARTITION" ,"PLAN" ,"PRAGMA" ,"PRECEDING" ,"PRIMARY" ,"QUERY" ,"RAISE" ,
426+ "RANGE" ,"RECURSIVE" ,"REFERENCES" ,"REGEXP" ,"REINDEX" ,"RELEASE" ,
427+ "RENAME" ,"REPLACE" ,"RESTRICT" ,"RETURNING" ,"RIGHT" ,"ROLLBACK" ,"ROW" ,
428+ "ROWS" ,"SAVEPOINT" ,"SELECT" ,"SET" ,"TABLE" ,"TEMP" ,"TEMPORARY" ,"THEN" ,
429+ "TIES" ,"TO" ,"TRANSACTION" ,"TRIGGER" ,"UNBOUNDED" ,"UNION" ,"UNIQUE" ,
430+ "UPDATE" ,"USING" ,"VACUUM" ,"VALUES" ,"VIEW" ,"VIRTUAL" ,"WHEN" ,"WHERE" ,
431+ "WINDOW" ,"WITH" ,"WITHOUT" ,NULL
432+ };
433+ PyObject * keywords = PyTuple_New (147 );
434+ if (keywords == NULL ) {
435+ return -1 ;
436+ }
437+ for (int i = 0 ;_keywords [i ]!= NULL ;i ++ ) {
438+ kwd = PyUnicode_FromString (_keywords [i ]);
439+ if (PyTuple_SetItem (keywords ,i ,kwd )!= 0 ) {
440+ Py_DECREF (kwd );
441+ Py_DECREF (keywords );
442+ return -1 ;
443+ }
444+ }
445+ if (PyModule_Add (module ,"SQLITE_KEYWORDS" ,keywords )< 0 ) {
446+ Py_DECREF (keywords );
447+ return -1 ;
448+ }
449+ return 0 ;
450+ }
451+
407452static int
408453add_integer_constants (PyObject * module ) {
409454#define ADD_INT (ival ) \
@@ -702,6 +747,11 @@ module_exec(PyObject *module)
702747 gotoerror ;
703748 }
704749
750+ /* Set sequence constants */
751+ if (add_sequence_constants (module )< 0 ) {
752+ gotoerror ;
753+ }
754+
705755if (PyModule_AddStringConstant (module ,"sqlite_version" ,sqlite3_libversion ())) {
706756 gotoerror ;
707757 }