BUG #13884: array_to_json() works incorrectly for non-0-based arrays - Mailing list pgsql-bugs

From xtracoder@gmail.com
Subject BUG #13884: array_to_json() works incorrectly for non-0-based arrays
Date
Msg-id 20160124104702.2537.84835@wrigleys.postgresql.org
Whole thread Raw
Responses Re: BUG #13884: array_to_json() works incorrectly for non-0-based arrays
List pgsql-bugs
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]

pgsql-bugs by date:

Previous
From: xtracoder@gmail.com
Date:
Subject: BUG #13885: float->string conversion loses precision server-side on JDBC connection
Next
From: kunschikov@gmail.com
Date:
Subject: BUG #13888: pg_dump write error