protected override void LoadIndexes() { if (!m_members.TableMembers.Contains(TableStructureMembers.Indexes)) { return; } var data = m_conn.SystemConnection.LoadTableFromQuery("select * from pg_indexes where schemaname!='pg_catalog'"); foreach (DataRow row in data.Rows) { string sql = row["indexdef"].SafeToString(); PostgreSQLLexer lexer = new PostgreSQLLexer(new ANTLRReaderStream(new StringReader(sql))); CommonTokenStream tokens = new CommonTokenStream(lexer); PostgreSQLParser parser = new PostgreSQLParser(tokens); IndexConstraint index = new IndexConstraint(); parser.create_index(index); if (parser.Errors != null) { throw new PostgreSqlParseCreateIndexError(parser.Errors, sql); } if (index.TableName.Schema == null) { index.SetDummyTable(new NameWithSchema("public", index.TableName.Name)); } if (!m_loadedIndexes.ContainsKey(index.TableName)) { m_loadedIndexes[index.TableName] = new List <IndexConstraint>(); } m_loadedIndexes[index.TableName].Add(index); } base.LoadIndexes(); }
public static PostgreSQLParser getPostgreSQLParser(string script) { var CharStream = CharStreams.fromString(script); var Lexer = new PostgreSQLLexer(CharStream); var Tokens = new CommonTokenStream(Lexer); var Parser = new PostgreSQLParser(Tokens); var ErrorListener = new PostgreSQLParserErrorListener(); ErrorListener.grammar = Parser; Parser.AddErrorListener(ErrorListener); return(Parser); }
public PostgreSQLParser getPostgreSQLParser(string script) { var charStream = CharStreams.fromString(script); var lexer = new PostgreSQLLexer(charStream); var tokens = new CommonTokenStream(lexer); var parser = new PostgreSQLParser(tokens); lexer.RemoveErrorListeners(); parser.RemoveErrorListeners(); var listener_lexer = new LexerDispatchingErrorListener((this.InputStream as CommonTokenStream).TokenSource as Lexer); var listener_parser = new ParserDispatchingErrorListener(this); lexer.AddErrorListener(listener_lexer); parser.AddErrorListener(listener_parser); return(parser); }