Skip to content

Parser: Implement basic CREATE TABLE DDL #58

@KieranKaelin

Description

@KieranKaelin

In order to be able to succeed the ANTLR4 parser used in the Atroposs DMA Module, the parser must be able to understand DDL. This is the first of many issues marking the way to replacing said parser.

Goal

A basic CREATE TABLE statement shall produce an appropriate AST.

For reference, see the Oracle documentation.

Examples

-- SQL Developer Export
CREATE TABLE "MY_SCHEMA"."EMP" (
  "EMP_ID" NUMBER(6,0) DEFAULT MY_SCEHMA.EMP_SEQ.nextval,
  "CREATED_AT" TIMESTAMP WITH TIME ZONE,
  "EMAIL" VARCHAR2(25 BYTE)
 )
SEGMENT CREATION IMMEDIATE
ORGANIZATION INDEX NOCOMPRESS PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 MAXSIZE UNLIMITED FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSAUX"
PCTTHRESHOLD 50;

How to demo

Appropriate tests are created showcasing the resulting AST and AST accessors to iterate and inspect the table properties.

Non-goals

  • Constraints: The SQL Developer exports them in separate DDL statements, never as inline constraints
  • Identity columns: Share syntax with sequences, and may be implemented in parallel
  • Partitions: Implemented as part of another ticket due to their complexity

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestparserParser functionality

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions