Comments (2)
if you plan to work on this please do it for one operator at first and post a rough prototype, so we can decide how to approach/go on from it
from phpstan-dba.
If we want to support SQL operators, would we need to duplicate all this logic from PHPStan? Even if we omit the parts that are irrelevant to SQL, this seems like it would be quite a lot of code duplication. Would it be reasonable to consider refactoring PHPStan to create a generic set of "type math" classes?
I think we could take different approaches. I am not sure the logic required is really 100% identical, therefore I guess it would make sense to build it in phpstan-dba itself.
I think we can/should directly base it on the SQL AST Nodes. the phpstan logic is based on nikic/php-parser AST nodes. we could transform the SQL AST Nodes into equivalent nikic/php-parser nodes and pass it into phpstan, but then I think the logic in phpstan would be to php-specific and in the end will not reflect the sql context/semantics we need.
summary: I think we should implement it our own for now and do it in a separate math class based on sql ast nodes
whether there is room for re-use can be decided after we implemented a rough prototype and we see similarities or not
from phpstan-dba.
Related Issues (20)
- AST doubts regarding null/not-null HOT 4
- AST: inconsistent behavior with functions and aliases HOT 4
- Analyzing multiple connections HOT 6
- Right vs left join HOT 2
- pgsql support for AST HOT 2
- give up sql based narrowing in case sqlftw cannot parse the query
- pgsql support for uuid type
- Support for (PDO->prepare())->execute() HOT 6
- generic type mysqli_result error with phpstan v1.10.36 and v1.10.37 HOT 2
- Support for custom API's for type inference HOT 1
- Check driver differences
- dibi support DATE_FORMAT
- Psalm support
- Using with doctrine/dbal HOT 8
- CI: Separate Testing of Doctrine 3.x and 4.x
- Issue with update to 0.2.80: Query expects 0 placeholder, but 1 value is given HOT 3
- Enabling `staabm/phpstan-dba` significantly increases garbage collection activity HOT 9
- Querying the column information fails when sql mode is set to ANSI_QUOTES HOT 1
- Uncaught UnexpectedValueException: RecursiveDirectoryIterator::__construct(//proc/tty/driver) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from phpstan-dba.