For example we want to shard usernames and userid. Let's say that our userid is a non_neg_integer() of 10 digits. And that we want to shard on the 7 first digits...
Extracting 7 characters from a string is done using the '$e[xtract]' function:
GTM> w $extract("12345678910",0,7) 1234567
Now that you can extract characters, you can use the "_" operators to concatenate the results with whatever you want. For this experimentation we will use the "^users" global:
GTM> w "^users"_$extract("12345678910",0,7) ^users1234567
Here's the full code:
shard(userid) q $$%shard("users",userid) %shard(root,id) n gbl n prefix s prefix=$e(id,0,7) q "^"_root_prefix
Everything from the shell:
GTM> zed "users" [ Copy/Paste the code and exists your editor ] GTM> zl "users" GTM> w $$shard^users(1234567890) ^users1234567
With this new function you can easily access any userid without thinking about the shard method. You just need to use the 'indirection' notation from GTM i.e.'@variable'.
userinfo(userid) n gbl s gbl=$$shard(userid) w "Login for userid: ",userid,! w @gbl@("login") q
No comments:
Post a Comment