# '*' as column list and dotted table name
select * from SYS.XYZZY
['select', '*', 'from', ['SYS.XYZZY']]
- columns: ['*']
- command: 'select'
- tables: ['SYS.XYZZY']

# caseless match on "SELECT", and casts back to "select"
SELECT * from XYZZY, ABC
['select', '*', 'from', ['XYZZY', 'ABC']]
- columns: ['*']
- command: 'select'
- tables: ['XYZZY', 'ABC']

# list of column names, and mixed case SELECT keyword
Select AA,BB,CC from Sys.dual
['select', ['AA', 'BB', 'CC'], 'from', ['SYS.DUAL']]
- columns: [['AA', 'BB', 'CC']]
  [0]:
    ['AA', 'BB', 'CC']
- command: 'select'
- tables: ['SYS.DUAL']

# multiple tables
Select A, B, C from Sys.dual, Table2
['select', ['A', 'B', 'C'], 'from', ['SYS.DUAL', 'TABLE2']]
- columns: [['A', 'B', 'C']]
  [0]:
    ['A', 'B', 'C']
- command: 'select'
- tables: ['SYS.DUAL', 'TABLE2']

# invalid SELECT keyword - should fail
Xelect A, B, C from Sys.dual
^
FAIL: Expected 'select', found 'X'  (at char 0), (line:1, col:1)

# incomplete command - should fail
Select
      ^
FAIL: Expected {"*" | columns}, found end of text  (at char 6), (line:1, col:7)

# invalid column name - should fail
Select ^^^ frox Sys.dual
       ^
FAIL: Expected {"*" | columns}, found '^'  (at char 7), (line:1, col:8)

100
[100]

-100
[-100]

+100
[100]

3.14159
[3.14159]

6.02e23
[6.02e+23]

1e-12
[1e-12]

100
[100.0]

-100
[-100.0]

+100
[100.0]

3.14159
[3.14159]

6.02e23
[6.02e+23]

1e-12
[1e-12]

100
[256]

FF
[255]

12345678-1234-5678-1234-567812345678
[UUID('12345678-1234-5678-1234-567812345678')]
