But Artem, I think this issue just same as https://github.com/orientechnologies/orientdb/issues/2264
I still suggest instead of return a fake record always. may should just return that object (scalar, string or record) directly without need the fake record. On Friday, April 25, 2014 7:57:22 PM UTC+8, Payne Chu wrote: > > Thanks Artem, > > sure created > https://github.com/orientechnologies/orientdb/issues/2283 > > On Friday, April 25, 2014 6:40:43 PM UTC+8, Artem Orobets wrote: >> >> That is strange. Could you create a ticket? >> >> Best regards, >> Artem Orobets >> >> *Orient Technologies the Company behind OrientDB* >> >> >> 2014-04-25 4:31 GMT+03:00 Payne Chu <payn...@gmail.com>: >> >>> Thanks Artem, >>> I tried, >>> SELECT expand(test()) >>> SELECT expand('test') FROM (SELECT test()) >>> traverse test from (SELECT test()) >>> But all return nothing. >>> >>> >>> <https://lh5.googleusercontent.com/-Dn8YQhL7flo/U1m5Vx38_hI/AAAAAAAAAKg/qOorukKeqKM/s1600/Screen+Shot+2014-04-25+at+9.23.58+am.png><https://lh5.googleusercontent.com/-Dn8YQhL7flo/U1m5Vx38_hI/AAAAAAAAAKg/qOorukKeqKM/s1600/Screen+Shot+2014-04-25+at+9.23.58+am.png> >>> >>> >>> >>> On Friday, April 25, 2014 3:42:52 AM UTC+8, Artem Orobets wrote: >>> >>>> Try: >>>> SELECT expand(test()) >>>> >>>> It should return the same result. >>>> >>>> The issue there is that function return a collection of records, so >>>> when query is executed it creates a wrapper document where insert this >>>> collection. That's why you see "[1]" (collection with 1 element) instead >>>> of >>>> the expected record. >>>> >>>> Best regards, >>>> Artem Orobets >>>> >>>> * Orient Technologiesthe Company behind OrientDB* >>>> >>>> >>>> 2014-04-24 4:57 GMT+03:00 Payne Chu <payn...@gmail.com>: >>>> >>>>> I created a function below, and executed through Functions page, >>>>> Browse page and Binary Protocol. they return differently. >>>>> What I expect the return should always like Functions page. But Browse >>>>> page and Binary Protocol only return Record Id. >>>>> Any way can return Record from Function ? >>>>> function test() { >>>>> return db.query("select from V where @rid=#9:1") >>>>> } >>>>> >>>>> >>>>> >>>>> EXECUTED through Functions page >>>>> [{"@type":"d","@rid":"#9:1","@version":25,"@class":"V","name":"HEY BO >>>>> DIDDLEY","song_type":"cover","performances":5,"type":"song", >>>>> "out_followed_by":["#11:0","#11:1","#11:2","#11:3","#11:4"], >>>>> "out_written_by":"#9:7","out_sung_by":"#9:8","in_followed_by":[ >>>>> "#11:10","#11:150","#11:2578","#11:5574"],"@fieldTypes": >>>>> "out_followed_by=g,in_followed_by=g"}] >>>>> >>>>> >>>>> >>>>> EXECUTED through Browse page >>>>> SELECT test() >>>>> returned >>>>> { >>>>> "result": [ >>>>> { >>>>> "@type": "d", >>>>> "@rid": "#-2:0", >>>>> "@version": 0, >>>>> "test": [ >>>>> 1 >>>>> ] >>>>> } >>>>> ], >>>>> "notification": "Query executed in 0.023 sec. Returned 1 >>>>> record(s)" >>>>> } >>>>> >>>>> >>>>> >>>>> EXECUTED through Binary Protocol >>>>> p.Exec(SyncQuery(dbSid, "SELECT test()", -1, "", nil, nil, nil)) >>>>> server log >>>>> 2014-04-24 09:47:02:355 INFO /127.0.0.1:49697 - Reading byte (1 >>>>> byte)... [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:356 INFO /127.0.0.1:49697 - Read byte: 41 >>>>> [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:356 INFO /127.0.0.1:49697 - Reading int (4 >>>>> bytes)... [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:356 INFO /127.0.0.1:49697 - Read int: 5 >>>>> [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:357 INFO /127.0.0.1:49697 - Reading byte (1 >>>>> byte)... [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:357 INFO /127.0.0.1:49697 - Read byte: 115 >>>>> [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:359 INFO /127.0.0.1:49697 - Reading chunk of >>>>> bytes. Reading chunk length as int (4 bytes)... [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:359 INFO /127.0.0.1:49697 - Read chunk lenght: 42 >>>>> [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:359 INFO /127.0.0.1:49697 - Reading 42 bytes... >>>>> [OChannelBinaryServer] >>>>> SELECT test()�������� [OChannelBinaryServer]7 - Read 42 bytes: q >>>>> 2014-04-24 09:47:02:413 INFO /127.0.0.1:49697 - Writing byte (1 >>>>> byte): 0 [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:414 INFO /127.0.0.1:49697 - Writing int (4 >>>>> bytes): 5 [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:414 INFO /127.0.0.1:49697 - Writing byte (1 >>>>> byte): 108 [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:414 INFO /127.0.0.1:49697 - Writing int (4 >>>>> bytes): 1 [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:416 INFO /127.0.0.1:49697 - Writing short (2 >>>>> bytes): 0 [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:416 INFO /127.0.0.1:49697 - Writing byte (1 >>>>> byte): 100 [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:416 INFO /127.0.0.1:49697 - Writing short (2 >>>>> bytes): -2 [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:416 INFO /127.0.0.1:49697 - Writing cluster >>>>> position (8 bytes) : 0.... [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:417 INFO /127.0.0.1:49697 - Writing int (4 >>>>> bytes): 0 [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:419 INFO /127.0.0.1:49697 - Writing bytes >>>>> (4+11=15 bytes): [116, 101, 115, 116, 58, 91, 35, 57, 58, 49, 93] >>>>> [OChannelBinaryServer] >>>>> 2014-04-24 09:47:02:419 INFO /127.0.0.1:49697 - Writing byte (1 >>>>> byte): 0 [OChannelBinaryServer] >>>>> deserialized record >>>>> &Record{ >>>>> Type:0x64, >>>>> Rid:RecordId{cluster:-2, position:0}, >>>>> Version:0, >>>>> Content:{ >>>>> "@type":100, >>>>> "test":[ >>>>> {cluster:9, position:1} >>>>> ] >>>>> } >>>>> } >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "OrientDB" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to orient-databa...@googlegroups.com. >>>>> >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>> >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "OrientDB" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to orient-databa...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to orient-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.