Comments (5)
The problem here is that the order of arguments to merge matters. The reason Joe did r.merge(..., x) instead of x.merge(...) in #43 is that otherwise it would clobber the field "rating". So we actually have two commands: a left-preferential mapped merge and a right-preferential mapped merge.
from rethinkdb.
Right, I missed that. We could do two commands or a flag/enum (which I personally prefer).
from rethinkdb.
I think that having a command to merges on streams isn't quite what we want. It would still be a bit unwieldy to use it for defaults in pluck which is the impetus for this bug I believe. Using this command you could do:
table.left_merge({"foo": 0, "bar" : 0}).pluck("foo", "bar")
which is definitely an improvement over a map but I'd like to have the defaulting built right in to the pluck so I could do:
table.pluck(["foo", 0], ["bar", 0])
Which just feels cleaner to me. Once we have defaulting sugar in the places we want it I don't think that a stream merge command is really useful enough to justify the sugar. If I heard about merge on a stream my first guess as to what it did wouldn't be the above behavior it would be merge sorting 2 streams together.
from rethinkdb.
I don't think we should call it 'merge' or even 'left_merge'. Perhaps 'defaults' or 'unpluck'? I think such a command would be very useful, even if we did provide defaults everywhere else.
Also, the pluck(['foo', 0], ['bar', 1], 'baz')
api seems pretty ugly to me. Perhaps pluck('foo', 'bar', 'baz', default=null)
? A little less powerful, but seems much cleaner. If the user wants the more advanced version, they can use defaults
instead.
from rethinkdb.
Since merge is now polymorphic, this is effectively done (one can call merge on an object or a stream -- I actually found it to be pretty convenient in practice). Closing.
from rethinkdb.
Related Issues (20)
- Revisit #6192 "fix environment syntax" HOT 1
- Cannot perform read: primary replica for shard ["", +inf) not available HOT 1
- It should be possible to set `--initial-password` from a file HOT 2
- Drivers as sub modules
- Publish 2.4.2 on GitHub HOT 2
- Revisit ALL issues and PRs merged/closed for 2.5.0 HOT 1
- Fix Admin Ui release notes link
- Proposal: Remove .dmg packaging format HOT 3
- Request official s390x binary and docker image HOT 11
- 2.4.2 Admin UI says upgrade available even when on the latest version HOT 9
- Expose my local rethinkdb to internet HOT 4
- AdminUI upgrade available eventhough using last version HOT 1
- There is a XSS(reflected) vulnerability that can eval dangerous functions HOT 1
- Find new address for Boost 1.60.0 download HOT 3
- Failed to determine absolute path for Metadata (Docker - Linux on Windows) for bind-mount volume
- How to build in debug mode ? HOT 1
- Error running on production, log HOT 5
- Can you tell me about code of your horizontal scroll bar in table view ? HOT 2
- RethinkDB 2.4.3 release list - v2.4.3 is tagged, most packages uploaded, website needs update HOT 9
- Codespell report for "RethinkDB" (on fossies.org) HOT 1
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 rethinkdb.