The following bug has been logged on the website:
Bug reference: 13884
Logged by: xtracoder
Email address: xtracoder@gmail.com
PostgreSQL version: 9.5.0
Operating system: Windows
Description:
When postgres array has no elements at the beginning, array_to_json()
generates json array starting at the first initialized value
Steps to reproduce
- - - - - - - - - - - - - - - - - - - - - - - -
DO $$
DECLARE
arr real[];
jsarr jsonb;
arr2 real[];
BEGIN
arr[3] = 1.1;
arr[4] = 1.1;
raise notice 'arr = %', arr;
jsarr = array_to_json(arr);
raise notice 'arr = %', jsarr;
arr[0] = 1.1;
raise notice 'arr = %', arr;
jsarr = array_to_json(arr);
raise notice 'arr = %', jsarr;
END $$
Actual result
- - - - - - - - - - - - - - - - - - - - - - - -
1. NOTICE: arr = [3:4]={1.1,1.1}
2. NOTICE: arr = [1.1, 1.1]
3. NOTICE: arr = [0:4]={1.1,NULL,NULL,1.1,1.1}
4. NOTICE: arr = [1.1, null, null, 1.1, 1.1]
Expected result
- - - - - - - - - - - - - - - - - - - - - - - -
2. NOTICE: arr = [null, null, null, 1.1, 1.1]