TIME ZONE SUPPORT FOR POSTGRES

Asked by Jay Muthukumarasamy

Hi,
  I am trying Akiban SQL Parser to parse and extract table definition from our DDL file. It works perfectly except for one thing. We use Postgresql database which support the TIMESTAMP WITH TIME ZONE datatype. When I try to parse a DDL which contains this type of column I get the following error:

com.akiban.sql.parser.SQLParserException: Encountered " "time" "TIME "" at line 1, column 210.
Was expecting:
    "default" ...

 at com.akiban.sql.parser.SQLParser.parseStatement(SQLParser.java:107)
 at com.centro.client.TestSelfHealer.parseSQL1(TestSelfHealer.java:96)
 at com.centro.client.TestSelfHealer.main(TestSelfHealer.java:47)
Caused by: com.akiban.sql.parser.ParseException: Encountered " "time" "TIME "" at line 1, column 210.
Was expecting:
    "default" ...

 at com.akiban.sql.parser.SQLGrammar.generateParseException(SQLGrammar.java:24398)
 at com.akiban.sql.parser.SQLGrammar.jj_consume_token(SQLGrammar.java:24240)
 at com.akiban.sql.parser.SQLGrammar.defaultClause(SQLGrammar.java:11694)
 at com.akiban.sql.parser.SQLGrammar.defaultAndConstraints(SQLGrammar.java:2961)
 at com.akiban.sql.parser.SQLGrammar.columnDefinition(SQLGrammar.java:2890)
 at com.akiban.sql.parser.SQLGrammar.tableElement(SQLGrammar.java:2871)
 at com.akiban.sql.parser.SQLGrammar.tableElementList(SQLGrammar.java:2862)
 at com.akiban.sql.parser.SQLGrammar.tableDefinition(SQLGrammar.java:10550)
 at com.akiban.sql.parser.SQLGrammar.createStatements(SQLGrammar.java:1948)
 at com.akiban.sql.parser.SQLGrammar.StatementPart(SQLGrammar.java:1817)
 at com.akiban.sql.parser.SQLGrammar.Statement(SQLGrammar.java:1733)
 at com.akiban.sql.parser.SQLGrammar.parseStatement(SQLGrammar.java:1720)
 at com.akiban.sql.parser.SQLParser.parseStatement(SQLParser.java:104)
 ... 2 more

Here is a sample DDL:
-------------------------
create table my_sample_table(
 MY_VARCHAR_COLUMN VARCHAR(10),
 MY_INT_COLUMN INTEGER,
 MY_TIMESTAMP_COLUMN TIMESTAMP WITH TIME ZONE);

I'd appreciate if you can provide a fix or a workaround. Thanks very much.

- Jay

Question information

Language:
English Edit question
Status:
Answered
For:
Akiban SQL Parser Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Nathan Williams (nwilliams) said :
#1

Hi Jay,

Our dialect doesn't support WITH TIME ZONE yet. There is a TODO in grammar about where it would go, but no simple workaround in the parser itself right now.

Is this something where your consuming program could handle it? For example, if all TIMESTAMPs have WITH TIME ZONE then you could strip it out of the DDL string and know you need to put it back when writing out.

On an unrelated note, this is no longer an active development area. The project has moved to GitHub:
https://github.com/FoundationDB/sql-parser

-Nathan

Can you help with this problem?

Provide an answer of your own, or ask Jay Muthukumarasamy for more information if necessary.

To post a message you must log in.