Refactored Write function of append store to use tidwall/resp to parse commands.

AOF log no longer prints an empty line between each command.
Return error on NewAppendStore instead of just logging.
Implemented test for AppendStore
This commit is contained in:
Kelvin Clement Mwinuka
2024-05-04 22:27:05 +08:00
parent 193871ec72
commit 915c34d9f6
4 changed files with 285 additions and 145 deletions

View File

@@ -1005,12 +1005,6 @@ github.com/echovault/echovault/echovault/test_helpers.go:22.2,22.57 1 1
github.com/echovault/echovault/echovault/test_helpers.go:22.57,24.3 1 0
github.com/echovault/echovault/echovault/test_helpers.go:25.2,26.12 2 1
github.com/echovault/echovault/echovault/test_helpers.go:29.95,34.2 4 1
github.com/echovault/echovault/internal/modules/connection/commands.go:24.68,25.29 1 1
github.com/echovault/echovault/internal/modules/connection/commands.go:26.10,27.54 1 1
github.com/echovault/echovault/internal/modules/connection/commands.go:28.9,29.34 1 1
github.com/echovault/echovault/internal/modules/connection/commands.go:30.9,31.94 1 1
github.com/echovault/echovault/internal/modules/connection/commands.go:35.36,43.84 1 1
github.com/echovault/echovault/internal/modules/connection/commands.go:43.84,49.5 1 0
github.com/echovault/echovault/internal/modules/acl/acl.go:52.40,57.24 3 1
github.com/echovault/echovault/internal/modules/acl/acl.go:57.24,65.3 2 1
github.com/echovault/echovault/internal/modules/acl/acl.go:68.2,68.28 1 1
@@ -1448,99 +1442,6 @@ github.com/echovault/echovault/internal/modules/acl/user.go:289.40,304.2 1 1
github.com/echovault/echovault/internal/modules/acl/user.go:306.46,307.24 1 1
github.com/echovault/echovault/internal/modules/acl/user.go:307.24,309.3 1 1
github.com/echovault/echovault/internal/modules/acl/user.go:310.2,310.26 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:27.78,33.29 4 1
github.com/echovault/echovault/internal/modules/admin/commands.go:33.29,34.54 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:34.54,40.42 4 1
github.com/echovault/echovault/internal/modules/admin/commands.go:40.42,42.5 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:44.4,47.12 3 1
github.com/echovault/echovault/internal/modules/admin/commands.go:50.3,50.36 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:50.36,57.43 5 1
github.com/echovault/echovault/internal/modules/admin/commands.go:57.43,59.5 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:61.4,63.21 2 1
github.com/echovault/echovault/internal/modules/admin/commands.go:67.2,69.25 2 1
github.com/echovault/echovault/internal/modules/admin/commands.go:72.76,76.35 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:76.35,77.65 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:77.65,78.41 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:78.41,80.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:81.4,81.12 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:83.3,83.13 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:86.2,86.51 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:89.75,90.29 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:91.9,96.36 4 0
github.com/echovault/echovault/internal/modules/admin/commands.go:96.36,97.66 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:97.66,98.52 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:98.52,102.6 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:103.5,103.13 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:105.4,106.14 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:108.3,109.26 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:111.9,115.56 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:115.56,117.4 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:118.3,118.53 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:118.53,122.37 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:122.37,123.67 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:123.67,124.53 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:124.53,125.59 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:125.59,129.8 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:131.6,131.14 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:133.5,133.54 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:133.54,136.6 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:138.9,138.61 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:138.61,142.37 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:142.37,143.67 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:143.67,144.53 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:144.53,146.24 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:146.24,149.8 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:151.6,151.14 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:153.5,153.33 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:153.33,156.6 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:158.9,158.60 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:158.60,162.37 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:162.37,163.67 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:163.67,164.53 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:164.53,165.55 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:165.55,169.8 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:171.6,171.14 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:173.5,173.50 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:173.50,176.6 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:178.9,180.4 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:181.3,182.26 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:183.10,184.54 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:188.75,190.2 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:192.36,200.84 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:200.84,204.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:213.84,217.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:225.86,229.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:238.86,242.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:252.86,256.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:267.84,271.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:272.73,273.49 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:273.49,275.6 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:276.5,276.45 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:285.84,289.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:290.73,292.18 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:292.18,294.6 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:295.5,295.53 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:304.84,308.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:309.73,310.47 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:310.47,312.6 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:313.5,313.45 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:321.84,325.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:335.86,339.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:340.75,341.34 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:341.34,343.8 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:344.7,345.34 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:345.34,347.8 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:348.7,348.75 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:348.75,350.8 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:351.7,351.47 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:360.86,364.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:365.75,366.35 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:366.35,368.8 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:369.7,370.47 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:379.86,383.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:384.75,387.38 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:387.38,389.8 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:390.7,390.30 1 0
github.com/echovault/echovault/internal/modules/generic/commands.go:33.67,35.16 2 1
github.com/echovault/echovault/internal/modules/generic/commands.go:35.16,37.3 1 1
github.com/echovault/echovault/internal/modules/generic/commands.go:39.2,45.16 6 1
@@ -1913,9 +1814,9 @@ github.com/echovault/echovault/internal/modules/hash/commands.go:323.38,325.17 2
github.com/echovault/echovault/internal/modules/hash/commands.go:325.17,326.41 1 1
github.com/echovault/echovault/internal/modules/hash/commands.go:326.41,328.13 2 1
github.com/echovault/echovault/internal/modules/hash/commands.go:330.4,330.42 1 1
github.com/echovault/echovault/internal/modules/hash/commands.go:330.42,333.13 3 0
github.com/echovault/echovault/internal/modules/hash/commands.go:335.4,335.38 1 1
github.com/echovault/echovault/internal/modules/hash/commands.go:335.38,337.13 2 1
github.com/echovault/echovault/internal/modules/hash/commands.go:330.42,333.13 3 1
github.com/echovault/echovault/internal/modules/hash/commands.go:335.4,335.38 1 0
github.com/echovault/echovault/internal/modules/hash/commands.go:335.38,337.13 2 0
github.com/echovault/echovault/internal/modules/hash/commands.go:342.2,342.25 1 1
github.com/echovault/echovault/internal/modules/hash/commands.go:345.68,347.16 2 1
github.com/echovault/echovault/internal/modules/hash/commands.go:347.16,349.3 1 1
@@ -2055,6 +1956,105 @@ github.com/echovault/echovault/internal/modules/hash/key_funcs.go:144.2,148.8 1
github.com/echovault/echovault/internal/modules/hash/key_funcs.go:151.74,152.18 1 1
github.com/echovault/echovault/internal/modules/hash/key_funcs.go:152.18,154.3 1 1
github.com/echovault/echovault/internal/modules/hash/key_funcs.go:155.2,159.8 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:27.78,33.29 4 1
github.com/echovault/echovault/internal/modules/admin/commands.go:33.29,34.54 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:34.54,40.42 4 1
github.com/echovault/echovault/internal/modules/admin/commands.go:40.42,42.5 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:44.4,47.12 3 1
github.com/echovault/echovault/internal/modules/admin/commands.go:50.3,50.36 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:50.36,57.43 5 1
github.com/echovault/echovault/internal/modules/admin/commands.go:57.43,59.5 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:61.4,63.21 2 1
github.com/echovault/echovault/internal/modules/admin/commands.go:67.2,69.25 2 1
github.com/echovault/echovault/internal/modules/admin/commands.go:72.76,76.35 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:76.35,77.65 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:77.65,78.41 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:78.41,80.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:81.4,81.12 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:83.3,83.13 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:86.2,86.51 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:89.75,90.29 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:91.9,96.36 4 0
github.com/echovault/echovault/internal/modules/admin/commands.go:96.36,97.66 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:97.66,98.52 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:98.52,102.6 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:103.5,103.13 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:105.4,106.14 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:108.3,109.26 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:111.9,115.56 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:115.56,117.4 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:118.3,118.53 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:118.53,122.37 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:122.37,123.67 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:123.67,124.53 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:124.53,125.59 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:125.59,129.8 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:131.6,131.14 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:133.5,133.54 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:133.54,136.6 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:138.9,138.61 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:138.61,142.37 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:142.37,143.67 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:143.67,144.53 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:144.53,146.24 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:146.24,149.8 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:151.6,151.14 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:153.5,153.33 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:153.33,156.6 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:158.9,158.60 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:158.60,162.37 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:162.37,163.67 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:163.67,164.53 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:164.53,165.55 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:165.55,169.8 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:171.6,171.14 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:173.5,173.50 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:173.50,176.6 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:178.9,180.4 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:181.3,182.26 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:183.10,184.54 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:188.75,190.2 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:192.36,200.84 1 1
github.com/echovault/echovault/internal/modules/admin/commands.go:200.84,204.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:213.84,217.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:225.86,229.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:238.86,242.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:252.86,256.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:267.84,271.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:272.73,273.49 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:273.49,275.6 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:276.5,276.45 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:285.84,289.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:290.73,292.18 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:292.18,294.6 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:295.5,295.53 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:304.84,308.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:309.73,310.47 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:310.47,312.6 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:313.5,313.45 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:321.84,325.5 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:335.86,339.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:340.75,341.34 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:341.34,343.8 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:344.7,345.34 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:345.34,347.8 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:348.7,348.75 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:348.75,350.8 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:351.7,351.47 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:360.86,364.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:365.75,366.35 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:366.35,368.8 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:369.7,370.47 2 0
github.com/echovault/echovault/internal/modules/admin/commands.go:379.86,383.7 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:384.75,387.38 3 0
github.com/echovault/echovault/internal/modules/admin/commands.go:387.38,389.8 1 0
github.com/echovault/echovault/internal/modules/admin/commands.go:390.7,390.30 1 0
github.com/echovault/echovault/internal/modules/connection/commands.go:24.68,25.29 1 1
github.com/echovault/echovault/internal/modules/connection/commands.go:26.10,27.54 1 1
github.com/echovault/echovault/internal/modules/connection/commands.go:28.9,29.34 1 1
github.com/echovault/echovault/internal/modules/connection/commands.go:30.9,31.94 1 1
github.com/echovault/echovault/internal/modules/connection/commands.go:35.36,43.84 1 1
github.com/echovault/echovault/internal/modules/connection/commands.go:43.84,49.5 1 0
github.com/echovault/echovault/internal/modules/list/commands.go:27.68,29.16 2 1
github.com/echovault/echovault/internal/modules/list/commands.go:29.16,31.3 1 1
github.com/echovault/echovault/internal/modules/list/commands.go:33.2,35.44 2 1