Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 640B96553 for ; Mon, 30 May 2011 11:51:58 +0000 (UTC) Received: (qmail 82904 invoked by uid 500); 30 May 2011 11:51:57 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 82872 invoked by uid 500); 30 May 2011 11:51:57 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 82864 invoked by uid 99); 30 May 2011 11:51:57 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 May 2011 11:51:57 +0000 X-ASF-Spam-Status: No, hits=0.7 required=5.0 tests=RCVD_IN_DNSWL_NONE,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [80.237.132.12] (HELO wp005.webpack.hosteurope.de) (80.237.132.12) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 May 2011 11:51:48 +0000 Received: from p5795aa7c.dip.t-dialin.net ([87.149.170.124] helo=superwombookpro.local); authenticated by wp005.webpack.hosteurope.de running ExIM with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) id 1QR10J-0005IV-81; Mon, 30 May 2011 13:51:27 +0200 From: =?iso-8859-1?Q?David_Z=FClke?= Content-Type: multipart/signed; boundary=Apple-Mail-1--115909041; protocol="application/pkcs7-signature"; micalg=sha1 Subject: View query option defaults Date: Mon, 30 May 2011 13:51:27 +0200 Message-Id: To: dev@couchdb.apache.org Mime-Version: 1.0 (Apple Message framework v1084) X-Mailer: Apple Mail (2.1084) X-bounce-key: webpack.hosteurope.de;david.zuelke@bitextender.com;1306756308;15c912ea; X-Virus-Checked: Checked by ClamAV on apache.org --Apple-Mail-1--115909041 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Hello list, Currently, it's necessary to have intimate-ish knowledge of the inner = workings of a view when calling it, e.g.: = http://localhost:5984/mydb/_design/burp/_view/count-laser-beams?group_leve= l=3D2 If the group level was different, the results returned by the view might = be useless. Other good examples are "include_docs", "inclusive_end" or "descending". = For instance, views that pull in foreign documents by emitting {_id: = ...} as a value will only produce useful results when called with = "include_docs" set to true. I'd suggest a feature where inside a view definition, a new key = "query_defaults" alongside "map" or "reduce" contains a hash map of = query option keys and values that will be used when calling the view = unless one of the pre-defined options is passed as a query argument, in = which case the explicitly given query argument would take precedence. Example: "views": { "talks-by-room": { "map": "function(doc) {\n\tif(doc.type =3D=3D 'talk' && = doc.date_start) {\n\t\temit([doc.room, doc.date_start, 0], = doc.name);\n\t\tif(doc.speaker) {\n\t\t\temit([doc.room, doc.date_start, = 1], {_id: doc.speaker});\n\t\t}\n\t}\n};", "query_defaults": { "include_docs": true } } } http://localhost:5984/couchcamp/_design/burp/_view/talks-by-room would = be run with include_docs=3Dtrue, but the doc inclusion could be = suppressed by requesting = http://localhost:5984/couchcamp/_design/burp/_view/talks-by-room?include_d= ocs=3Dfalse Alternative names for the new key are "query_options" or = "query_option_defaults". Whilst I prefer "query_options", I think = "query_defaults" will be the better choice as it underlines the nature = of the functionality - namely, that the options defined therein may be = overridden by the caller. I'd attempt a patch, but I probably lack the necessary Erlang-fu. Jan = encouraged me to propose the feature here anyway :) Have a nice week, David --Apple-Mail-1--115909041 Content-Disposition: attachment; filename=smime.p7s Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIMZDCCBW4w ggRWoAMCAQICECzy3OO4bIaKwclpYXzU0GAwDQYJKoZIhvcNAQEFBQAwgd0xCzAJBgNVBAYTAlVT MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y azE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEg KGMpMDkxHjAcBgNVBAsTFVBlcnNvbmEgTm90IFZhbGlkYXRlZDE3MDUGA1UEAxMuVmVyaVNpZ24g Q2xhc3MgMSBJbmRpdmlkdWFsIFN1YnNjcmliZXIgQ0EgLSBHMzAeFw0xMDEwMTQwMDAwMDBaFw0x MTEwMTUyMzU5NTlaMIIBGzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT aWduIFRydXN0IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9S UEEgSW5jb3JwLiBieSBSZWYuLExJQUIuTFREKGMpOTgxHjAcBgNVBAsTFVBlcnNvbmEgTm90IFZh bGlkYXRlZDEzMDEGA1UECxMqRGlnaXRhbCBJRCBDbGFzcyAxIC0gTmV0c2NhcGUgRnVsbCBTZXJ2 aWNlMRUwEwYDVQQDFAxEYXZpZCBadWVsa2UxKzApBgkqhkiG9w0BCQEWHGRhdmlkLnp1ZWxrZUBi aXRleHRlbmRlci5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTFIMYSR0GnIsK MHUvTk4cSKdV0AtBkWcU1xrOVB+N+Yt/2VBtKV8QhfGwN6s8djcq3WGQEHjah8yoNbzNbhMOCPds TLpR3h2LYZ92s1LAUZxSEnk0vHGGSH3Mh+p9gOYUiSxr15jQEKJ3lRM5Rhx0FEiNIclIyIycAH5v Gog+uE3PGR9TJ2W7HkL7syT7BSCHGCRKPKgNyHDBG2f+kwVkaha7wuJr/8FVeu4EOsN5LsFfzZpY tEkZLynV2mtrUfuRiC1VO/XGS4nx8Mal5hR4TGo2aMWnLhMv0vIkqkFgMIyb+U7shrSqgRA1twQu E+XqjKcTsoSmf/RtlR5k+3lnAgMBAAGjgegwgeUwCQYDVR0TBAIwADBEBgNVHSAEPTA7MDkGC2CG SAGG+EUBBxcBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEwCwYD VR0PBAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggrBgEFBQcDAjAUBgpghkgBhvhFAQYHBAYW BE5vbmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2luZGMxZGlnaXRhbGlkLWczLWNybC52ZXJp c2lnbi5jb20vSW5kQzFEaWdpdGFsSUQtRzMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCORRzoX9q6 ru46+C/LmaYBhjpFVNizsGHweTgBJJZUvkvDLG/sSBKIyFG54vnQUSgTKll6rLuVEWxbDNCq847z PPMWRFaNQSSg8qztcIbhkFx7WxnY/BXpS+E2hQe/VLD0u67OerJBYsVnFAEYXQPSa7XCOqtlld+3 gt6TNvQRHDvjnpLeQXzWbC8WVVqEf835ZOQdXrVRHiYyu08MfXbi9x3KbbUtGA78f9WpD0wZ27ix I22+66Co1TTU2wbti1XdhJhOOXwwHzKtD0ESJbbMmjquplOgNgPJjViHUE0E3pX6YUCgiviP73Lq PnyQ4yjltudFrANX4PB6GjZ5EHHhMIIG7jCCBdagAwIBAgIQcRVmBUrkkSFN6bxE+azT3DANBgkq hkiG9w0BAQUFADCByjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYD VQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMTk5OSBWZXJpU2lnbiwg SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAx IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzMwHhcNMDkwNTAxMDAw MDAwWhcNMTkwNDMwMjM1OTU5WjCB3TELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJ bmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1 c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwOTEeMBwGA1UECxMVUGVyc29u YSBOb3QgVmFsaWRhdGVkMTcwNQYDVQQDEy5WZXJpU2lnbiBDbGFzcyAxIEluZGl2aWR1YWwgU3Vi c2NyaWJlciBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7cRH3yooHXwG a7vXITLJbBOP6bGNQU4099oL42r6ZYggCxET6ZvgSU6Lb9UB0F8NR5GKWkx0Pj/GkQm7TDSejW6h glFi92l2WJYHr54UGAdPWr2f0jGyVBlzRmoZQhHsEnMhjfXcMM3l2VYKMcU2bSkUl70t2olHGYjY SwQ967Y8Zx50ABMN0Ibak2f4MwOuGjxraXj2wCyO4YM/d/mZ//6fUlrCtIcK2GypR8FUKWVDPkrA lh/Brfd3r2yxBF6+wbaULZeQLSfSux7pg2qE9sSyriMGZSalJ1grByK0b6ZiSBp38tVQJ5op05b7 KPW6JHZi44xZ6/tu1ULEvkHH9QIDAQABo4ICuTCCArUwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUF BzABhhhodHRwOi8vb2NzcC52ZXJpc2lnbi5jb20wEgYDVR0TAQH/BAgwBgEB/wIBADBwBgNVHSAE aTBnMGUGC2CGSAGG+EUBBxcBMFYwKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv bS9jcHMwKgYIKwYBBQUHAgIwHhocaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYTA0BgNVHR8E LTArMCmgJ6AlhiNodHRwOi8vY3JsLnZlcmlzaWduLmNvbS9wY2ExLWczLmNybDAOBgNVHQ8BAf8E BAMCAQYwbgYIKwYBBQUHAQwEYjBgoV6gXDBaMFgwVhYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQU S2u5KJYGDLvQUjibKaxLB4shBRgwJhYkaHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nbzEu Z2lmMC4GA1UdEQQnMCWkIzAhMR8wHQYDVQQDExZQcml2YXRlTGFiZWw0LTIwNDgtMTE4MB0GA1Ud DgQWBBR5R2EIQf04BKJL57XM9UP2SSsR+DCB8QYDVR0jBIHpMIHmoYHQpIHNMIHKMQswCQYDVQQG EwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5l dHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQg dXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlm aWNhdGlvbiBBdXRob3JpdHkgLSBHM4IRAItbdVaEVIULAM+vOEjOsaQwDQYJKoZIhvcNAQEFBQAD ggEBADlNz0GZgbWpBbVSOOk5hIls5DSoWufYbAlMJBq6WaSHO3Mh8ZOBz79oY1pn/jWFK6HDXaNK wjoZ3TDWzE3v8dKBl8pUWkO/N4t6jhmND0OojPKvYLMVirOVnDzgnrMnmKQ1chfl/Cpdh9OKDcLR RSr4wPSsKpM61a4ScAjr+zvid+zoK2Q1ds262uDRyxTWcVibvtU+fbbZ6CTFJGZMXZEfdrMXPn8N xiGJL7M3uKH/XLJtSd5lUkL7DojS7Uodv0vj+Mxy+kgOZY5JyNb4mZg7t5Q+MXEGh/psWVMu198r 7V9jAKwV7QO4VRaMxmgD5yKocwuxvKDaUljdCg5/wYIxggSLMIIEhwIBATCB8jCB3TELMAkGA1UE BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO ZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29t L3JwYSAoYykwOTEeMBwGA1UECxMVUGVyc29uYSBOb3QgVmFsaWRhdGVkMTcwNQYDVQQDEy5WZXJp U2lnbiBDbGFzcyAxIEluZGl2aWR1YWwgU3Vic2NyaWJlciBDQSAtIEczAhAs8tzjuGyGisHJaWF8 1NBgMAkGBSsOAwIaBQCgggJtMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF MQ8XDTExMDUzMDExNTEyOVowIwYJKoZIhvcNAQkEMRYEFHKZIVnFGjAiI2WwF6pj9Wt0HdNSMIIB AwYJKwYBBAGCNxAEMYH1MIHyMIHdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIElu Yy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVz ZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTA5MR4wHAYDVQQLExVQZXJzb25h IE5vdCBWYWxpZGF0ZWQxNzA1BgNVBAMTLlZlcmlTaWduIENsYXNzIDEgSW5kaXZpZHVhbCBTdWJz Y3JpYmVyIENBIC0gRzMCECzy3OO4bIaKwclpYXzU0GAwggEFBgsqhkiG9w0BCRACCzGB9aCB8jCB 3TELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln biBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0cHM6Ly93d3cudmVy aXNpZ24uY29tL3JwYSAoYykwOTEeMBwGA1UECxMVUGVyc29uYSBOb3QgVmFsaWRhdGVkMTcwNQYD VQQDEy5WZXJpU2lnbiBDbGFzcyAxIEluZGl2aWR1YWwgU3Vic2NyaWJlciBDQSAtIEczAhAs8tzj uGyGisHJaWF81NBgMA0GCSqGSIb3DQEBAQUABIIBAL8yJ77oKnWOSPGN3rBlopL75nZKxsA2abUv vgKxuZLtCFncCAzDMsfB/yOEs9LPd+619qQoypMvvDNPwpdVSpJNKqqpt2aqnpwrS5bhZhSdguBf RG3sSSnXuV1hmybzDLf0nBA9AF3Qrbh5z/WpAsvq2JDj2+PPi3Sk4c5Fci9obsXmF17GpLe4q4pp Va6MWhhsolJnV4czsdqE8HeazWYYQOuJ0lnO3H6FJoqvxoVVfuPvjuj79/4kRwmTmnnN56ZWDtTT b5s6kk3TbOXzCnjlywKwD1QAFCaVHy88KVq8+j+z8MY44qxOR2Gnf5lbJ4ch7RBTwI8MnhbQfmi0 tUAAAAAAAAA= --Apple-Mail-1--115909041--