1. 16 8月, 2016 2 次提交
  2. 15 8月, 2016 1 次提交
  3. 13 8月, 2016 2 次提交
    • H
      Silence warnings about failed inlining, by removing 'inline' attributes. · 416300a7
      Heikki Linnakangas 提交于
      The functions in memtuple.c were only called when building a column
      binding struct. That's not a hot path, as that only gets done once, when
      starting the executor, not at every row.
      
      handleAckedPacket() is probably in a somewhat hot path, as it's called for
      every received Ack interconnect packet. However, all the calls to it are
      straight unconditional jumps, so branch prediction should make those
      very cheap. Inlining them would increase the code size quite a bit, so the
      compiler is probably making a good choice by refusing to inline them. Let's
      not try to force it.
      
      I'm seeing a few more warnings like this from tqual.c and tuplesort.c, but
      those are in upstream code, so I'm reluctant to just remove the inline
      attributes there. Should do something about those too, to reduce the noise,
      but let's at least get these straightforward gpdb-specific cases fixed.
      
      For reference, these are the warnings I was getting:
      
      memtuple.c: In function ‘create_col_bind’:
      memtuple.c:122:20: warning: inlining failed in call to ‘add_null_save_aligned’: call is unlikely and code size would grow [-Winline]
       static inline bool add_null_save_aligned(MemTupleAttrBinding *bind, short *null_save_aligned, int i, char next_attr_align)
                          ^
      memtuple.c:241:10: warning: called from here [-Winline]
            if (add_null_save_aligned(previous_bind, colbind->null_saves_aligned, physical_col - 1, 'd'))
                ^
      memtuple.c:122:20: warning: inlining failed in call to ‘add_null_save_aligned’: call is unlikely and code size would grow [-Winline]
       static inline bool add_null_save_aligned(MemTupleAttrBinding *bind, short *null_save_aligned, int i, char next_attr_align)
                          ^
      memtuple.c:270:10: warning: called from here [-Winline]
            if (add_null_save_aligned(previous_bind, colbind->null_saves_aligned, physical_col - 1, 'i'))
                ^
      memtuple.c:122:20: warning: inlining failed in call to ‘add_null_save_aligned’: call is unlikely and code size would grow [-Winline]
       static inline bool add_null_save_aligned(MemTupleAttrBinding *bind, short *null_save_aligned, int i, char next_attr_align)
                          ^
      memtuple.c:308:10: warning: called from here [-Winline]
            if (add_null_save_aligned(previous_bind, colbind->null_saves_aligned, physical_col - 1, 's'))
                ^
      memtuple.c:122:20: warning: inlining failed in call to ‘add_null_save_aligned’: call is unlikely and code size would grow [-Winline]
       static inline bool add_null_save_aligned(MemTupleAttrBinding *bind, short *null_save_aligned, int i, char next_attr_align)
                          ^
      memtuple.c:354:10: warning: called from here [-Winline]
            if (add_null_save_aligned(previous_bind, colbind->null_saves_aligned, physical_col - 1, 'c'))
                ^
      ic_udpifc.c: In function ‘handleAcks.isra.25’:
      ic_udpifc.c:4370:1: warning: inlining failed in call to ‘handleAckedPacket’: call is unlikely and code size would grow [-Winline]
       handleAckedPacket(MotionConn *ackConn, ICBuffer *buf, uint64 now)
       ^
      ic_udpifc.c:5177:3: warning: called from here [-Winline]
         handleAckedPacket(conn, buf, now);
         ^
      ic_udpifc.c:4370:1: warning: inlining failed in call to ‘handleAckedPacket’: call is unlikely and code size would grow [-Winline]
       handleAckedPacket(MotionConn *ackConn, ICBuffer *buf, uint64 now)
       ^
      ic_udpifc.c:5189:4: warning: called from here [-Winline]
          handleAckedPacket(conn, buf, now);
          ^
      ic_udpifc.c:4370:1: warning: inlining failed in call to ‘handleAckedPacket’: call is unlikely and code size would grow [-Winline]
       handleAckedPacket(MotionConn *ackConn, ICBuffer *buf, uint64 now)
       ^
      ic_udpifc.c:5073:4: warning: called from here [-Winline]
          handleAckedPacket(conn, buf, now);
          ^
      ic_udpifc.c:4370:1: warning: inlining failed in call to ‘handleAckedPacket’: call is unlikely and code size would grow [-Winline]
       handleAckedPacket(MotionConn *ackConn, ICBuffer *buf, uint64 now)
       ^
      ic_udpifc.c:5112:4: warning: called from here [-Winline]
          handleAckedPacket(conn, buf, now);
          ^
      416300a7
    • H
      da0c4ae3
  4. 12 8月, 2016 7 次提交
  5. 11 8月, 2016 20 次提交
  6. 10 8月, 2016 2 次提交
  7. 09 8月, 2016 6 次提交
    • H
      Fix bug in index dxl translators that can't translatte ScalarArrayOpExpr [#126158185] · cfafef00
      Haisheng Yuan 提交于
      Orca couldn't pickup plan that uses index scan for the following cases:
      
      select * from btree_tbl where a in (1,2);
        --> Orca generated table scan instead of index scan
      select * from bitmap_tbl where a in (1,2);
        --> Orca generated table scan instead of bitmap scan
      
      Orca failed to consider the case that uses ArrayComp
      when trying to pick up index.
      The issue has been fixed in this patch.
      
      Closes #993
      cfafef00
    • A
      bf1a8dd8
    • A
      Avoid aborting based on PT entry without consulting clog. · b05f0920
      Ashwin Agrawal 提交于
      High level theory of the issue if checkpoint happens after recording
      COMMIT to clog, xactHashTable won't know the status of the xact during
      recovery, since no REDO records corresponding to the same would be
      looked into. But its incorrect without consulting CLOG to ABORT the xact
      based on having CREATE_PENDING entry in PT. Hence should check CLOG to
      verify if it was COMMITTED. If we don't perform this check, the recovery
      would try to mark COMMITED Xact Aborted, seeing Create-Pending entry
      associated with the Xact and double fault.
      Do not have repro as wasn't able to find scenario in which this can
      happen, but was seen in field and hence better to add protection to
      avoid double fault.
      b05f0920
    • H
      [#127944191] Fix compiler warning in gp_dump_query_oids · 974c13d4
      Haisheng Yuan and Marc Spehlmann 提交于
      We just need to pass the query tree, we don't need source sql text and
      other arguments, so change to QueryRewrite here. Previously an implicit
      cast was causing a compiler warning. Also, the method pg_analyze_and_rewrite
      is overkill, and in fact calls QueryRewrite.
      974c13d4
    • M
      Adds a GUC to enable array constraint derivation. · c85f858e
      Marc Spehlmann 提交于
      A new feature of ORCA is to more efficiently handle array constraints.
      It includes a new preprocessing stage, and a new way of internally
      representing array constraints. This feature can be enabled by use of
      this GUC.
      c85f858e
    • C
      Modify behave test for gppersistent rebuild · e90aa438
      Chumki Roy 提交于
      e90aa438