Comments (7)
@rochoa, I think that you're aware of this, but we need a plan for this, because it's a blocker for DO through CartoDB/bigmetadata/issues/227.
As this is a blocker, if we can't do it, we'll have to do a workaround either by doing an extra request from Builder and passing type parameters, or hardcoding the known types. Both solutions are not desiderable, though. We think that the best approach for the problem would be allowing execution of arbitrary SQL, as the issue says. We'd like to know if engine team can address this, or at least help @ethervoid or @javitonino with it so we can fix it by ourselves.
from camshaft.
Just to be clear: this issue will track and solve the situation with CartoDB/bigmetadata#227. So it is possible to retrieve some required metadata or do basic queries to prepare the node to be executed.
However, the validation of geometries cannot happen at the node creation phase, as this a hot execution path. For that, the work @ethervoid is doing in #317 is better suited.
I'm gonna update the title for this issue accordingly.
from camshaft.
I've asked @dgaubert about some doubts and we've been talking about this change. He made a very important point which is that the code executed in camshaft in the node creation is going to affect the instantiation map time.
So if we make queries or operations that could be a bit heavy, we're going to introduce an overhead in the map instantiation time (and we don't want that)
For me we are able to overcome this situation with two measures:
- Include a
column_types
here or make thecolumn_names
a tuple with name/type - For the validation pre-check we have two options:
To avoid include something new that seems to be unused, I'll try to inject the query inside the current DO query (option 2)
What do you think @javitonino @rochoa?
from camshaft.
Oh, I think we were talking about option 2a all the time. Meaning adding a new hook to the node, and calling it during the node execution.
from camshaft.
But this only allows SQL code, nothing more and you can't get the data returned by that query so is a bit useless to include it there. Could be great to abstract the pre-check from the main query but that's all.
from camshaft.
I have some kind of PoC working.
For camshaft I've done this and I have a precheck function in dataservices like this
Here is an example of an error:
from camshaft.
Done in #323
from camshaft.
Related Issues (20)
- DO: Error augmenting with text columns HOT 1
- Performance research: run independent analyses in parallel HOT 1
- Prevent column name collisions in node queries HOT 2
- Depricated SQL nodes not working HOT 18
- Review sql queries to improve planning with IMMUTABLE and PARALLEL functions HOT 6
- Invalid geometries generated with Area of Intereset HOT 1
- DO analysis fails with multiple columns with the same numerator HOT 2
- Poor SQL for nearest neighbor join
- Force "merge" analysis to be cached HOT 2
- Map instantiation: Get columns from cache table instead of using `LIMIT 0` when avaiblable HOT 9
- Add .npmignore HOT 1
- IMHO Misleading `limits_error` message
- Uncaught exception in some Batch API errors HOT 1
- Polygons from geometries analysis should be cached HOT 1
- Uncaught exception: Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed HOT 17
- Error with reserved words
- Replace CDB_QueryTables_Updated_At with cartodb-query-tables HOT 1
- Noise in the analysis logs HOT 4
- Uncaught exception: Range filter expect to have at least one value in greater_than, greater_than_or_equal, less_than, less_than_or_equal, min, or max numeric params
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 camshaft.