Comments (4)
Thanks! I will fix this as part of the upcoming v4.0.0 release. We just need to determine what the naming scheme will be. I'm tempted to leave op.min
and op.max
as aggregate functions. Though this is non-obvious syntactically, it matches the prior releases and will not break existing code. I also think the aggregate functions are the more common use case. (The fact that this issue hasn't been raised until now attests to that, I think.)
If so, that leaves the question of what to name the "standard" min and max functions. One "trick" we can add is to update the parser so that if Math.min
and Math.max
appear in a table expression we use the standard versions (we already auto-magically map Math.
constant lookups). As for the op
namespace itself, maybe op.max_value
and op.min_value
?
from arquero.
I've used op.max for aggregations and it works fine. I think it's better reserved as current scenario.
I wonder is there any easy way of function overloading? Since the parameters are not the same in these scenarios, for aggregation it needs to be one, but for math scenario it needs to be two and more.
Another idea is to breakdown 'op' with categorical namespacing, like op.max === op.aggregationFunctions.max, op.Math.max, op.String.indexof etc, in case of other collisions. But it is not a very elegant solution.
from arquero.
I’m not sure if it’s part of the ISO standard, but I believe that a lot of SQL dialects use “greatest” and “least” for this. https://docs.aws.amazon.com/redshift/latest/dg/r_GREATEST_LEAST.html
from arquero.
Thanks @jcmkk3! I was thinking along those lines after realizing max_value
, etc. is too similar to existing window functions. Good to see some precedent for this in existing DB systems.
from arquero.
Related Issues (20)
- Interpolate missing values
- arquero op.first_value function issue HOT 2
- table.print() should return table to enable chaining HOT 2
- Citation for academic paper HOT 2
- Nuxt 2.0 build failing due to apache-arrow exports HOT 6
- Add op functions to work with Map and Set objects HOT 1
- `fromCSV` fails with uncaught TypeError on CSV with headers only HOT 1
- Join ignores empty string as suffix
- Table expressions do not support underscores as numeric separators in numeric literals
- CSV parse functions don't get run on null values
- Failing during production build: minification problem? HOT 10
- Verb to drop columns by name? HOT 2
- derive can not handle string? HOT 2
- Table concatenation results in empty table
- Problems getting Arquero to find it's types in Typescript HOT 5
- array_agg and undefined/none values HOT 3
- fromArrow -> Unrecognized type: "undefined"
- COUNTIF-like aggregate function
- NextJS swcMinify is breaking arquero
- Apache Arrow 15 support HOT 9
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 arquero.