forked from couchbaselabs/JSUDF
kaminijagtiani/JSUDF
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Every example has PL/SQL in comments and corresponding JS UDF uncommented. With Couchbase Javascript N1QL UDFS, Its a 4 step process: 1.Write the UDF in Javascript.This UDF can include zero or more N1QL statements. 2.Register the UDF into a library using curl or UI 3.Create mapping N1QL functions using CREATE FUNCTION in cbq or UI 4.Execute the N1QL functions. Using either UI or REST API Create a bucket test curl -X POST -u Administrator:password -d name=test -d ramQuotaMB=2048 -d authType=none http://127.0.0.1:8091/pools/default/buckets -d threadsNumber=8 -d replicaNumber=0 Using either UI query editor or cbq, create scope within the bucket test and then create collections These collections will be needed in examples. create scope test.testscope; create collection test.testscope.temp; create collection test.testscope.emp; create collection test.testscope.temp1; create collection test.testscope.exam3; create collection test.testscope.departments; create collection test.testscope.employees; create collection test.testscope.emp8; Create primary indexes in UI or cbq CREATE PRIMARY INDEX ON `default`:`test`.`testscope`.`temp` CREATE PRIMARY INDEX ON `default`:`test`.`testscope`.`emp`; CREATE PRIMARY INDEX ON `default`:`test`.`testscope`.`temp1`; CREATE PRIMARY INDEX ON `default`:`test`.`testscope`.`exam3`; CREATE PRIMARY INDEX ON `default`:`test`.`testscope`.`departments`; CREATE PRIMARY INDEX ON `default`:`test`.`testscope`.`employees`; CREATE PRIMARY INDEX ON `default`:`test`.`testscope`.`emp8`; For example 1: curl -s -k -X POST http://localhost:8093/evaluator/v1/libraries/udftestlib -u Administrator:password --data-binary @./example1.js In cbq: CREATE OR REPLACE FUNCTION forloop() LANGUAGE JAVASCRIPT AS "forloop" AT "udftestlib"; execute function forloop(); Example 2: curl -s -k -X POST http://localhost:8093/evaluator/v1/libraries/udftestlib2 -u Administrator:password --data-binary @./example2.js In cbq: CREATE OR REPLACE FUNCTION insertdata() LANGUAGE JAVASCRIPT AS "insertdata" AT "udftestlib2"; execute function insertdata(); CREATE OR REPLACE FUNCTION alternatetocursor() LANGUAGE JAVASCRIPT AS "alternatetocursor" AT "udftestlib2"; execute function alternatetocursor(); select * from test.testscope.temp1; Example 3: curl -s -k -X POST http://localhost:8093/evaluator/v1/libraries/udftestlib3 -u Administrator:password --data-binary @./example3.js In cbq: CREATE OR REPLACE FUNCTION scoping() LANGUAGE JAVASCRIPT AS "scoping" AT "udftestlib3"; execute function scoping(); select * from test.testscope.exam3 ; Example 5: curl -s -k -X POST http://localhost:8093/evaluator/v1/libraries/udftestlib5 -u Administrator:password --data-binary @./example5.js In cbq: CREATE OR REPLACE FUNCTION salaryupdate() LANGUAGE JAVASCRIPT AS "salaryupdate" AT "udftestlib5"; execute function salaryupdate(); Example 7: curl -s -k -X POST http://localhost:8093/evaluator/v1/libraries/udftestlib7 -u Administrator:password --data-binary @./example7.js In cbq: CREATE OR REPLACE FUNCTION exampleforinnerjoin() LANGUAGE JAVASCRIPT AS "exampleforinnerjoin" AT "udftestlib7"; execute function exampleforinnerjoin(); Example 8: curl -s -k -X POST http://localhost:8093/evaluator/v1/libraries/udftestlib8 -u Administrator:password --data-binary @./example8.js CREATE OR REPLACE FUNCTION insertdata() LANGUAGE JAVASCRIPT AS "insertdata" AT "udftestlib8" ; CREATE OR REPLACE FUNCTION totalEmployees() LANGUAGE JAVASCRIPT AS "totalEmployees" AT "udftestlib8" ; execute function insertdata(); SELECT count(*) FROM test.testscope.emp8; Example 9: curl -v -X POST http://localhost:8093/evaluator/v1/libraries/libfact -u Administrator:password –data-binary '@example9.js' CREATE FUNCTION fact(x) LANGUAGE javascript AS "fact" at "libfact" execute function fact(3); execute function fact(0.5); Example elapsed_time_calculator: curl -v -X POST http://localhost:8093/evaluator/v1/libraries/elapsed_time_calculator -u Administrator:password --data-binary @./elapsed_time_calculator.js CREATE OR REPLACE FUNCTION calculate_elapsed_time() LANGUAGE JAVASCRIPT AS "calculate_elapsed_time" AT "elapsed_time_calculator"; EXECUTE FUNCTION calculate_elapsed_time();
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- JavaScript 100.0%