Skip to content

Commit 40aa5fc

Browse files
authored
Merge pull request #3081 from dolthub/zachmu/sql-funcs
make_set and export_set functions
2 parents 8c2ec97 + 2ebd419 commit 40aa5fc

File tree

6 files changed

+913
-0
lines changed

6 files changed

+913
-0
lines changed

enginetest/queries/queries.go

Lines changed: 232 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5611,6 +5611,238 @@ SELECT * FROM cte WHERE d = 2;`,
56115611
{string("thiTHIRD ROWrow")},
56125612
},
56135613
},
5614+
{
5615+
Query: `SELECT EXPORT_SET(5, "Y", "N", ",", 4)`,
5616+
Expected: []sql.Row{
5617+
{string("Y,N,Y,N")},
5618+
},
5619+
},
5620+
{
5621+
Query: `SELECT EXPORT_SET(6, "1", "0", ",", 10)`,
5622+
Expected: []sql.Row{
5623+
{string("0,1,1,0,0,0,0,0,0,0")},
5624+
},
5625+
},
5626+
{
5627+
Query: `SELECT EXPORT_SET(0, "1", "0", ",", 4)`,
5628+
Expected: []sql.Row{
5629+
{string("0,0,0,0")},
5630+
},
5631+
},
5632+
{
5633+
Query: `SELECT EXPORT_SET(15, "1", "0", ",", 4)`,
5634+
Expected: []sql.Row{
5635+
{string("1,1,1,1")},
5636+
},
5637+
},
5638+
{
5639+
Query: `SELECT EXPORT_SET(1, "T", "F", ",", 3)`,
5640+
Expected: []sql.Row{
5641+
{string("T,F,F")},
5642+
},
5643+
},
5644+
{
5645+
Query: `SELECT EXPORT_SET(5, "1", "0", "|", 4)`,
5646+
Expected: []sql.Row{
5647+
{string("1|0|1|0")},
5648+
},
5649+
},
5650+
{
5651+
Query: `SELECT EXPORT_SET(5, "1", "0", "", 4)`,
5652+
Expected: []sql.Row{
5653+
{string("1010")},
5654+
},
5655+
},
5656+
{
5657+
Query: `SELECT EXPORT_SET(5, "ON", "OFF", ",", 4)`,
5658+
Expected: []sql.Row{
5659+
{string("ON,OFF,ON,OFF")},
5660+
},
5661+
},
5662+
{
5663+
Query: `SELECT EXPORT_SET(255, "1", "0", ",", 8)`,
5664+
Expected: []sql.Row{
5665+
{string("1,1,1,1,1,1,1,1")},
5666+
},
5667+
},
5668+
{
5669+
Query: `SELECT EXPORT_SET(1024, "1", "0", ",", 12)`,
5670+
Expected: []sql.Row{
5671+
{string("0,0,0,0,0,0,0,0,0,0,1,0")},
5672+
},
5673+
},
5674+
{
5675+
Query: `SELECT EXPORT_SET(5, "1", "0")`,
5676+
Expected: []sql.Row{
5677+
{string("1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")},
5678+
},
5679+
},
5680+
{
5681+
Query: `SELECT EXPORT_SET(5, "1", "0", ",", 1)`,
5682+
Expected: []sql.Row{
5683+
{string("1")},
5684+
},
5685+
},
5686+
{
5687+
Query: `SELECT EXPORT_SET(-1, "1", "0", ",", 4)`,
5688+
Expected: []sql.Row{
5689+
{string("1,1,1,1")},
5690+
},
5691+
},
5692+
{
5693+
Query: `SELECT EXPORT_SET(NULL, "1", "0", ",", 4)`,
5694+
Expected: []sql.Row{
5695+
{nil},
5696+
},
5697+
},
5698+
{
5699+
Query: `SELECT EXPORT_SET(5, NULL, "0", ",", 4)`,
5700+
Expected: []sql.Row{
5701+
{nil},
5702+
},
5703+
},
5704+
{
5705+
Query: `SELECT EXPORT_SET(5, "1", NULL, ",", 4)`,
5706+
Expected: []sql.Row{
5707+
{nil},
5708+
},
5709+
},
5710+
{
5711+
Query: `SELECT EXPORT_SET(5, "1", "0", NULL, 4)`,
5712+
Expected: []sql.Row{
5713+
{nil},
5714+
},
5715+
},
5716+
{
5717+
Query: `SELECT EXPORT_SET(5, "1", "0", ",", NULL)`,
5718+
Expected: []sql.Row{
5719+
{nil},
5720+
},
5721+
},
5722+
{
5723+
Query: `SELECT EXPORT_SET("5", "1", "0", ",", 4)`,
5724+
Expected: []sql.Row{
5725+
{string("1,0,1,0")},
5726+
},
5727+
},
5728+
{
5729+
Query: `SELECT EXPORT_SET(5.7, "1", "0", ",", 4)`,
5730+
Expected: []sql.Row{
5731+
{string("0,1,1,0")},
5732+
},
5733+
},
5734+
{
5735+
Query: `SELECT EXPORT_SET(i, "1", "0", ",", 4) FROM mytable ORDER BY i`,
5736+
Expected: []sql.Row{
5737+
{string("1,0,0,0")},
5738+
{string("0,1,0,0")},
5739+
{string("1,1,0,0")},
5740+
},
5741+
},
5742+
{
5743+
Query: `SELECT MAKE_SET(1, "a", "b", "c")`,
5744+
Expected: []sql.Row{
5745+
{string("a")},
5746+
},
5747+
},
5748+
{
5749+
Query: `SELECT MAKE_SET(1 | 4, "hello", "nice", "world")`,
5750+
Expected: []sql.Row{
5751+
{string("hello,world")},
5752+
},
5753+
},
5754+
{
5755+
Query: `SELECT MAKE_SET(0, "a", "b", "c")`,
5756+
Expected: []sql.Row{
5757+
{string("")},
5758+
},
5759+
},
5760+
{
5761+
Query: `SELECT MAKE_SET(3, "a", "b", "c")`,
5762+
Expected: []sql.Row{
5763+
{string("a,b")},
5764+
},
5765+
},
5766+
{
5767+
Query: `SELECT MAKE_SET(5, "a", "b", "c")`,
5768+
Expected: []sql.Row{
5769+
{string("a,c")},
5770+
},
5771+
},
5772+
{
5773+
Query: `SELECT MAKE_SET(7, "a", "b", "c")`,
5774+
Expected: []sql.Row{
5775+
{string("a,b,c")},
5776+
},
5777+
},
5778+
{
5779+
Query: `SELECT MAKE_SET(1024, "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k")`,
5780+
Expected: []sql.Row{
5781+
{string("k")},
5782+
},
5783+
},
5784+
{
5785+
Query: `SELECT MAKE_SET(1025, "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k")`,
5786+
Expected: []sql.Row{
5787+
{string("a,k")},
5788+
},
5789+
},
5790+
{
5791+
Query: `SELECT MAKE_SET(7, "a", NULL, "c")`,
5792+
Expected: []sql.Row{
5793+
{string("a,c")},
5794+
},
5795+
},
5796+
{
5797+
Query: `SELECT MAKE_SET(7, NULL, "b", "c")`,
5798+
Expected: []sql.Row{
5799+
{string("b,c")},
5800+
},
5801+
},
5802+
{
5803+
Query: `SELECT MAKE_SET(NULL, "a", "b", "c")`,
5804+
Expected: []sql.Row{
5805+
{nil},
5806+
},
5807+
},
5808+
{
5809+
Query: `SELECT MAKE_SET("5", "a", "b", "c")`,
5810+
Expected: []sql.Row{
5811+
{string("a,c")},
5812+
},
5813+
},
5814+
{
5815+
Query: `SELECT MAKE_SET(5.7, "a", "b", "c")`,
5816+
Expected: []sql.Row{
5817+
{string("b,c")},
5818+
},
5819+
},
5820+
{
5821+
Query: `SELECT MAKE_SET(-1, "a", "b", "c")`,
5822+
Expected: []sql.Row{
5823+
{string("a,b,c")},
5824+
},
5825+
},
5826+
{
5827+
Query: `SELECT MAKE_SET(16, "a", "b", "c")`,
5828+
Expected: []sql.Row{
5829+
{string("")},
5830+
},
5831+
},
5832+
{
5833+
Query: `SELECT MAKE_SET(3, "", "test", "")`,
5834+
Expected: []sql.Row{
5835+
{string(",test")},
5836+
},
5837+
},
5838+
{
5839+
Query: `SELECT MAKE_SET(i, "first", "second", "third") FROM mytable ORDER BY i`,
5840+
Expected: []sql.Row{
5841+
{string("first")},
5842+
{string("second")},
5843+
{string("first,second")},
5844+
},
5845+
},
56145846
{
56155847
Query: "SELECT version()",
56165848
Expected: []sql.Row{

0 commit comments

Comments
 (0)