-- Basic CREATE SEQUENCE
CREATE SEQUENCE my_seq;

-- With SHARING
CREATE SEQUENCE my_seq SHARING = METADATA;
CREATE SEQUENCE my_seq SHARING = DATA;
CREATE SEQUENCE my_seq SHARING = NONE;

-- With START clause
CREATE SEQUENCE my_seq START WITH 1;
CREATE SEQUENCE my_seq START WITH 100;

-- INCREMENT BY variations
CREATE SEQUENCE my_seq INCREMENT BY 1;
CREATE SEQUENCE my_seq INCREMENT BY 10;

-- MAXVALUE variations
CREATE SEQUENCE my_seq MAXVALUE 999999;
CREATE SEQUENCE my_seq NOMAXVALUE;

-- MINVALUE variations
CREATE SEQUENCE my_seq MINVALUE 1;
CREATE SEQUENCE my_seq NOMINVALUE;

-- CYCLE variations
CREATE SEQUENCE my_seq CYCLE;
CREATE SEQUENCE my_seq NOCYCLE;

-- CACHE variations
CREATE SEQUENCE my_seq CACHE 20;
CREATE SEQUENCE my_seq NOCACHE;

-- ORDER variations
CREATE SEQUENCE my_seq ORDER;
CREATE SEQUENCE my_seq NOORDER;

-- KEEP variations
CREATE SEQUENCE my_seq KEEP;
CREATE SEQUENCE my_seq NOKEEP;

-- SCALE variations
CREATE SEQUENCE my_seq SCALE;
CREATE SEQUENCE my_seq SCALE EXTEND;
CREATE SEQUENCE my_seq SCALE NOEXTEND;
CREATE SEQUENCE my_seq NOSCALE;

-- SHARD variations
CREATE SEQUENCE my_seq SHARD;
CREATE SEQUENCE my_seq SHARD EXTEND;
CREATE SEQUENCE my_seq SHARD NOEXTEND;
CREATE SEQUENCE my_seq NOSHARD;

-- SESSION/GLOBAL variations
CREATE SEQUENCE my_seq SESSION;
CREATE SEQUENCE my_seq GLOBAL;

-- Combined specifications (common patterns)
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MINVALUE 1;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 NOMINVALUE;

CREATE SEQUENCE my_seq INCREMENT BY 1 MAXVALUE 999999 MINVALUE 1;
CREATE SEQUENCE my_seq INCREMENT BY 1 NOMAXVALUE NOMINVALUE;
CREATE SEQUENCE my_seq INCREMENT BY 1 MAXVALUE 999999 CYCLE;
CREATE SEQUENCE my_seq INCREMENT BY 1 MAXVALUE 999999 NOCYCLE;

CREATE SEQUENCE my_seq INCREMENT BY 1 CACHE 20;
CREATE SEQUENCE my_seq INCREMENT BY 1 NOCACHE;
CREATE SEQUENCE my_seq INCREMENT BY 1 ORDER;
CREATE SEQUENCE my_seq INCREMENT BY 1 NOORDER;

-- More complex combinations
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 MINVALUE 1 CYCLE CACHE 20;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOMINVALUE NOCYCLE NOCACHE;
CREATE SEQUENCE my_seq START WITH 100 INCREMENT BY 10 MAXVALUE 10000 MINVALUE 100 NOCYCLE CACHE 50 ORDER;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 MINVALUE 1 CYCLE CACHE 20 ORDER;

-- With KEEP/NOKEEP
CREATE SEQUENCE my_seq INCREMENT BY 1 KEEP;
CREATE SEQUENCE my_seq INCREMENT BY 1 NOKEEP;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 CYCLE CACHE 20 KEEP;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 CYCLE CACHE 20 NOKEEP;

-- With SCALE variations
CREATE SEQUENCE my_seq INCREMENT BY 1 SCALE;
CREATE SEQUENCE my_seq INCREMENT BY 1 SCALE EXTEND;
CREATE SEQUENCE my_seq INCREMENT BY 1 SCALE NOEXTEND;
CREATE SEQUENCE my_seq INCREMENT BY 1 NOSCALE;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 CYCLE CACHE 20 SCALE EXTEND;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 CYCLE CACHE 20 NOSCALE;

-- With SHARD variations
CREATE SEQUENCE my_seq INCREMENT BY 1 SHARD;
CREATE SEQUENCE my_seq INCREMENT BY 1 SHARD EXTEND;
CREATE SEQUENCE my_seq INCREMENT BY 1 SHARD NOEXTEND;
CREATE SEQUENCE my_seq INCREMENT BY 1 NOSHARD;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 CYCLE CACHE 20 SHARD EXTEND;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 CYCLE CACHE 20 NOSHARD;

-- With SESSION/GLOBAL
CREATE SEQUENCE my_seq INCREMENT BY 1 SESSION;
CREATE SEQUENCE my_seq INCREMENT BY 1 GLOBAL;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 CYCLE CACHE 20 SESSION;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 CYCLE CACHE 20 GLOBAL;

-- Comprehensive combinations with all major features
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 MINVALUE 1 CYCLE CACHE 20 ORDER KEEP SCALE EXTEND SESSION;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOMINVALUE NOCYCLE NOCACHE NOORDER NOKEEP NOSCALE NOSHARD GLOBAL;
CREATE SEQUENCE my_seq START WITH 100 INCREMENT BY 5 MAXVALUE 10000 MINVALUE 100 NOCYCLE CACHE 100 ORDER KEEP SHARD EXTEND GLOBAL;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999 MINVALUE 1 CYCLE NOCACHE NOORDER NOKEEP SCALE NOEXTEND NOSHARD SESSION;

-- Order variations (clauses in different orders)
CREATE SEQUENCE my_seq CACHE 20 INCREMENT BY 1 MAXVALUE 999999 MINVALUE 1 START WITH 1;
CREATE SEQUENCE my_seq CYCLE MAXVALUE 999999 INCREMENT BY 1 START WITH 1;
CREATE SEQUENCE my_seq GLOBAL SHARD EXTEND SCALE EXTEND KEEP ORDER CACHE 20 CYCLE MAXVALUE 999999 MINVALUE 1 INCREMENT BY 1 START WITH 1;
CREATE SEQUENCE my_seq NOCACHE NOMAXVALUE NOMINVALUE INCREMENT BY 1;
CREATE SEQUENCE my_seq SESSION NOSHARD NOSCALE NOKEEP NOORDER NOCYCLE INCREMENT BY 1;

-- Minimal variations with just one or two options
CREATE SEQUENCE my_seq START WITH 1000;
CREATE SEQUENCE my_seq MAXVALUE 999999999;
CREATE SEQUENCE my_seq CACHE 1000;
CREATE SEQUENCE my_seq SCALE EXTEND;
CREATE SEQUENCE my_seq SHARD NOEXTEND;

-- Real-world realistic patterns
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 NOCACHE ORDER;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 CACHE 20 NOORDER;
CREATE SEQUENCE my_seq START WITH 1000000 INCREMENT BY 1 MAXVALUE 9999999999 NOCYCLE CACHE 100 NOORDER;
CREATE SEQUENCE my_seq INCREMENT BY 1 NOMINVALUE NOMAXVALUE NOCYCLE CACHE 20;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 999999999999999999999999999 CYCLE CACHE 20;

-- Testing all NO* options together
CREATE SEQUENCE my_seq NOMINVALUE NOMAXVALUE NOCYCLE NOCACHE NOORDER NOKEEP NOSCALE NOSHARD;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 NOMINVALUE NOMAXVALUE NOCYCLE NOCACHE NOORDER NOKEEP NOSCALE NOSHARD GLOBAL;

-- Testing all positive options together (where applicable)
CREATE SEQUENCE my_seq MINVALUE 1 MAXVALUE 999999 CYCLE CACHE 20 ORDER KEEP SCALE SHARD SESSION;
CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 999999 CYCLE CACHE 20 ORDER KEEP SCALE EXTEND SHARD EXTEND SESSION;

-- Duplicate sequence_spec clauses (testing repetition in grammar)
CREATE SEQUENCE my_seq INCREMENT BY 1 INCREMENT BY 2;
CREATE SEQUENCE my_seq CACHE 20 CACHE 50;
CREATE SEQUENCE my_seq MAXVALUE 1000 MAXVALUE 2000;
CREATE SEQUENCE my_seq CYCLE NOCYCLE;
CREATE SEQUENCE my_seq SCALE EXTEND NOSCALE;
CREATE SEQUENCE my_seq SESSION GLOBAL;