¿Qué tipo de gramática se usa para analizar PostgreSQL? ¿Es LR, LALR, LL o algo más?¿Qué tipo de gramática se usa para analizar PostgreSQL?
5
A
Respuesta
6
El PostgreSQL parser se basa en yacc y lex. Los analizadores generados por yacc son LALR (1). Puedes leer la gramática de postgres here.
+1
Esto fue hasta [8.X versión] (http://www.postgresql.org/docs/8.4/static/parser-stage.html). En más de 9 versiones, PosgreSQL [está usando Bison] (http://www.postgresql.org/docs/9.0/static/parser-stage.html), que es un generador de analizadores compatible con yacc completo. –
Cuestiones relacionadas
- 1. ¿Qué tipo de analizador se necesita para esta gramática?
- 2. ¿Por qué Heroku usa Postgresql?
- 3. ¿Para qué se usa + =?
- 4. Analizar una gramática con el Espíritu Boost
- 5. ¿Para qué se usa Django?
- 6. ¿Cuál es la mejor manera de analizar una gramática simple?
- 7. ¿Qué generador de analizadores usa CPython?
- 8. ¿Para qué se usa el auto =>?
- 9. ¿Qué usa Microsoft como tipo de datos para cadenas Unicode?
- 10. ¿Qué tipo de alcance usa Haskell?
- 11. ¿Cómo puedo analizar esto con gramática de clavijas?
- 12. ¿Por qué se usa typedef con el tipo enum?
- 13. ¿Qué tipo de hash usa WordPress?
- 14. Tipo de campo PostgreSQL para timestamp unix?
- 15. ¿Qué tipo de columna PostgreSQL se debe usar para almacenar un Java BigDecimal?
- 16. ¿Para qué se usa Test-and-Set?
- 17. ¿Qué es analizar/analizar?
- 18. ¿Qué tipo de estructura de datos se usa para los mapas inmutables?
- 19. ¿Usa Parsec de Haskell para analizar archivos binarios?
- 20. En Objective-C, ¿por qué se usa id como tipo de devolución para los métodos init?
- 21. ¿Para qué usa Sinatra?
- 22. ¿Qué es GLIBC? ¿Para qué se usa esto?
- 23. .NET: ¿Para qué se usa el encabezado del objeto?
- 24. ¿por qué se usa osgi?
- 25. Qué bibliotecas están disponibles para analizar C++ para extraer información de tipo
- 26. ¿qué es equivalente al tipo de datos largos en postgresql?
- 27. ¿Qué compilador se usa para producir Microsoft Office para Mac?
- 28. ¿Por qué se usa suhosin?
- 29. jQuery usa (nueva función ("retorno" + datos))(); en lugar de eval (datos); para analizar JSON, ¿por qué?
- 30. ¿Qué es LiteralControl? ¿Por qué se usa?
Es probable que se base en una gramática LALR (1); eso es lo que Yacc/Bison maneja normalmente. Es probable que haya algunas complicaciones en eso; a veces la gramática de SQL se vuelve difícil de manejar con LALR (1). –
El código fuente para el analizador está aquí (para la última versión) http://git.postgresql.org/gitweb/?p=postgresql.git;a=tree;f=src/backend/parser;h=904b1b0bb8bddc95b422b27a3d44fd826dedf736;hb=REL9_1_STABLE Contiene definiciones estándar de LEX y YACC ... – zeFrenchy