1. 03 8月, 2016 1 次提交
  2. 29 7月, 2016 1 次提交
  3. 21 7月, 2016 2 次提交
    • S
      Decide what to generate for ExecEvalExpr based on PlanState · 23007017
      Shreedhar Hardikar 提交于
        * Skip generating ExecEvalExpr ScanNodes when ProjInfo is a Var list
        * Skip generating SlotGetAttr in AggNodes
      23007017
    • S
      Add EXPLAIN CODEGEN to print generated IR to the client · 387d8ce8
      Shreedhar Hardikar 提交于
      This will aid tremendously in debugging codegen because the generated IR
      will be easily available to be seen. Rest of the functionality of
      EXPLAIN is maintained. Also we only perform the compilation step if it
      not a EXPLAIN-only query. That is EXPLAIN CODEGEN with perform code
      generation only and will not compile the resultant code. EXPLAIN ANALYZE
      will do both, and also execute the query.
      387d8ce8
  4. 12 7月, 2016 1 次提交
    • S
      Use ExprTreeGeneratorInfo for expression tree generation. · 88a04412
      Shreedhar Hardikar 提交于
      ExprTreeGeneratorInfo object keeps track of metadata information
      needed to generate code for expression trees.
      Refactor ExprTreeGenerators to always use econtext->ecxt_scantuple to
      generate the functions. We also have an extra slot_check block to fall
      back if it is called with a different slot - which shouldn't happen for
      Agg and Scan nodes.
      88a04412
  5. 29 6月, 2016 4 次提交
  6. 03 6月, 2016 1 次提交
  7. 02 6月, 2016 1 次提交
    • N
      Create naive code-generated version of ExecQual · aae0ad3d
      Nikos Armenatzoglou 提交于
      This commit generates code for a naive code-generated version of ExecQual that simply fallbacks to regular ExecQual.
      The code-generated ExecQual is enrolled in the existing codegen framework and is called only in ExecScan.
      After the implementation of the function (i.e., generate code for expression evaluation), we can replace all calls to regular ExecQual with call_ExecQual macros.
      aae0ad3d
  8. 11 5月, 2016 1 次提交
    • S
      This commit generates code for code path: ExecVariableList > slot_getattr >... · 7b75d9ea
      Shreedhar Hardikar 提交于
      This commit  generates code for code path: ExecVariableList > slot_getattr > _slot_getsomeattrs > slot_deform_tuple. This code path is executed during scan in simple select queries that do not have a where clause (e.g., select bar from foo;).
      
      For each attribute A in the target list, regular implementation of ExecvariableList retrieves the slot that A comes from and calls slot_getattr. slot_get_attr() will eventually call slot_deform_tuple (through _slot_getsomeattrs), which fetches all yet unread attributes of the slot until the given attribute.
      
      This commit generates the code for the case that all the attributes in target list use the same slot (created during a scan i.e, ecxt_scantuple). Moreover, instead of looping over the target list one at a time, it uses slot_getattr only once, with the largest attribute index from the target list.
      
      If during code generation time, the completion is not possible (e.g., attributes use different slots), then function returns false and codegen manager will be responsible to manage the clean up.
      
      This implementation does not support:
      * Null attributes
      * Variable length attributes
      * Fixed length attributes passed by reference (e.g., uuid)
      If at execution time, we see any of the above types of attributes, we fall back to the regular function.
      
      Moreover, this commit:
      * renames existing "codegen" guc, which is used for initiating llvm libraries, to "init_codegen" (Note: we set this guc in gpconfig),
      * adds guc "codegen", which enables code generation and compilation at query execution time,
      * enhances the existing code generation utilities by adding a function that creates all IR instructions for falling back to regular functions, and
      * removes the existing code that generates the code of a naive slot_deform_tuple, which simply falls back to regular slot_deform_tuple.
      Signed-off-by: NNikos Armenatzoglou <nikos.armenatzoglou@gmail.com>
      7b75d9ea
  9. 22 4月, 2016 1 次提交
    • K
      Integrate codegen framework and make simple external call to slot deform · ae4a7754
      Karthikeyan Jambu Rajaraman 提交于
      tuple.
      This closes #649
      
      Squashed commit of the following:
      
      commit 96f415bc1744533e96a74bcc85016ff5df65d06e
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Thu Apr 21 15:08:49 2016 -0700
      
          Don't call prepare for execution if no generator is registered
      
      commit 5318e9214a3bbc237c0d79017cdef02538c4e711
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Thu Apr 21 11:35:22 2016 -0700
      
          Adding if codegen protection in starting active manager and while
          deleting manager
      
      commit 12b0045d51a5b056b32a6cc9ef370e6d9af315fd
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Fri Apr 15 14:33:55 2016 -0700
      
          Updating Readme for Codegen GPDB Function
      
      commit d17119c5d8ce9a706b3321d5e7ad41f419fddbdc
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Wed Apr 13 13:25:14 2016 -0700
      
          Add documentation for how to codegen in README.md
      
      commit d711be4bb044592e7f97bf31ceb5f32337ad6d03
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Wed Apr 13 11:19:03 2016 -0700
      
          Fixing doxygen namespace addtogroup
      
      commit e34131bcc9bb3d36c5e8995e1a0efe11fbd55417
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Wed Apr 13 11:17:32 2016 -0700
      
          Changing CodeGen to Codegen
      
      commit bedfcca80b5f1ff796783ca7c2035d920ae86c4e
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Wed Apr 13 10:51:39 2016 -0700
      
          Fix cpplint error
      
      commit 32f89feedba655e1242529c78a54faf01ddf32bf
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Wed Apr 13 10:48:49 2016 -0700
      
          Change regular version of generated to regular version of target in comment
      
      commit d1da2824c08e34eb7139b08cd9d2aff19bf008e7
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Wed Apr 13 10:42:09 2016 -0700
      
          Made GetFunctionPointer and CreateFunction to take typedef of function type as only public api
      
      commit 9f48f77bd9fc50c7d29a4e8f7700452ef88dc79f
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Tue Apr 12 17:18:24 2016 -0700
      
          Rename doCodegeneration to GenerateCodeInternal
      
      commit 9884d07f4c6ab08d9ccca8d07b80974081cda1fa
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Tue Apr 12 17:15:55 2016 -0700
      
          fix cpplint error
      
      commit c21b3bee3e289675fc13017688269b40e26efa11
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Tue Apr 12 17:08:16 2016 -0700
      
          Update comments
      
      commit f016bb582af65e84def1b55917017008e292d45b
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Tue Apr 12 17:01:19 2016 -0700
      
          Adding assert in static setToRegular function
      
      commit 93a791a4ec415313933dd5b7c1ae17dbdd6193a6
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Tue Apr 12 16:49:15 2016 -0700
      
          Removing decltype in Slotdeformtype codegen since we know the functype
      
      commit ed95193d0991cb24fd68f6d9a473de630f297b0c
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Tue Apr 12 16:45:49 2016 -0700
      
          Fixed compiler / unit test failure
          Changed InitCodeGen to InitCodegen
      
      commit 3c95c9efdd4336e100a86748b0e87d79f07bcc11
      Author: Karthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Date:   Tue Apr 12 16:28:24 2016 -0700
      
          Changing CodeGen back to Codegen while cherry-picking
      
      commit 4e24ef22bcf54edc00c2a0d1f9f9703364cdf5ba
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Tue Apr 12 11:08:42 2016 -0700
      
          Changing auto to actual type
      
      commit 1d92fc190dda3ec866edc83d56d9eca9fe90a63a
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Tue Apr 12 10:44:49 2016 -0700
      
          fix indent in codegen_utils
      
      commit ea6fa787a2332f94b8d20d24825ba1f0a240d02e
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 17:25:53 2016 -0700
      
          Adding codegen guc to wrapper function so related function not executed when codegen guc is disabled
      
      commit f1cd7d80d8d81f3565f3ab12cb94a3c4cc58c44a
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 17:13:24 2016 -0700
      
          Changing bool to unsigned int in codegen_wrapper.h
      
      commit 7ef462540a312d077b332c732c125c55dedb6b14
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 16:59:08 2016 -0700
      
          Fix based on lint complain
      
      commit ddc55cec0d579a03cb9e2303efa6d74f5183979f
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 16:19:48 2016 -0700
      
          Removing commented code from unittest
      
      commit 28b8886ed2bfdc854aa38f871a41536c1e6cef29
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 16:17:45 2016 -0700
      
          Chaging auto in for to actual type
      
      commit ad8d78e07e9b789f4d8ae3c6ccc3cea1a05089c0
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 16:13:21 2016 -0700
      
          * Handle return value of SetToGenerated from PrepareForExecution
          * Change size_t to unsigned integer
      
      commit d46ee8be414b3ac2a9ea7ef899f29cef3df145c7
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 15:30:40 2016 -0700
      
          Introducing template function to do enroll for any type of generator
      
      commit 83428605f906e28d0fc994dcc311e0cc3e6d9e12
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 14:41:11 2016 -0700
      
          Changing manager to take module name as argument
      
      commit b88aa40f89860e7c15503365ea304d2392f71cda
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 14:27:31 2016 -0700
      
          adding more comments to SlotDeformTupleCodeGenInfo and unique counter
      
      commit df1b704548fcbc1b43524064eb2f024995eea865
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 14:08:34 2016 -0700
      
          Change test target to have ext .t and adding gitignore for that extension
      
      commit 9ee3521ca687c4ea7f13d15893f47146ecdb5277
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 13:59:57 2016 -0700
      
          Add target_include_directories for test library header file
      
      commit effb7dc165b4c7094731dc39e0872741b28b2e6a
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Mon Apr 11 13:36:50 2016 -0700
      
          Move all possible ifdef from gpdb to codegen_wrapper based on pull request comments
      
      commit 989b96a91c1e843577b5f24623d1e4a6b810394c
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Fri Apr 8 10:43:17 2016 -0700
      
          fixing comments for GetOrigFuncName in codegen_interface
      
      commit 665de065c34ea13abcec8c5f3a3336558dae501f
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Fri Apr 8 10:27:31 2016 -0700
      
          Disabling codegen guc by default
      
      commit ec34513e86dea95bd36ee528724273c1c19e7062
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Thu Apr 7 16:28:43 2016 -0700
      
          Fixed comments space/tab so it aligned in different editor
      
      commit 35a60fe2fd053a5babd1820302afad95c5c2635f
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Thu Apr 7 16:12:08 2016 -0700
      
          Fixing coding style based on cpplint
      
      commit 9477dcf6c0a7ffcca77b9f2c62c7340d13f474aa
      Author: Karthikeyan Jambu Rajaraman <krajaraman@pivotal.io>
      Date:   Thu Apr 7 13:37:01 2016 -0700
      
          Adding USE_CODEGEN ifdef
      
      commit 142ffc1416341a3ac1d0fe37a83577168f2ec166
      Author: Shreedhar Hardikar <shardikar@pivotal.io>
      Date:   Tue Apr 5 22:21:19 2016 +0000
      
          Make codegen work with GPDB unit test framework
      
      commit 9dca9507dd933a5517bee3ca34615c09c23c1728
      Author: Shreedhar Hardikar <shardikar@pivotal.io>
      Date:   Mon Apr 4 22:10:21 2016 +0000
      
          Add gpcodegen_mock.c
      
      commit 41d515ff0342d3df3b0853ad91731f6d1d75843c
      Author: Shreedhar Hardikar <shardikar@pivotal.io>
      Date:   Mon Apr 4 21:46:34 2016 +0000
      
          Remove unneccessary header file includes in codegen
      
      commit 14c5e14b9834197693b1ef56efa96386cfe049c5
      Author: Foyzur Rahman <frahman@gmail.com>
      Date:   Tue Apr 12 14:49:51 2016 -0700
      
          Integrate codegen framework and make simple external call to slot deform tuple
      Signed-off-by: NKarthikeyan Jambu Rajaraman <karthi.jrk@gmail.com>
      Signed-off-by: NFoyzur Rahman <frahman@gmail.com>
      ae4a7754
  10. 28 10月, 2015 1 次提交
  11. 02 1月, 2008 1 次提交
  12. 27 2月, 2007 1 次提交
    • T
      Get rid of the separate EState for subplans, and just let them share the · c7ff7663
      Tom Lane 提交于
      parent query's EState.  Now that there's a single flat rangetable for both
      the main plan and subplans, there's no need anymore for a separate EState,
      and removing it allows cleaning up some crufty code in nodeSubplan.c and
      nodeSubqueryscan.c.  Should be a tad faster too, although any difference
      will probably be hard to measure.  This is the last bit of subsidiary
      mop-up work from changing to a flat rangetable.
      c7ff7663
  13. 06 1月, 2007 1 次提交
  14. 04 10月, 2006 1 次提交
  15. 02 8月, 2006 1 次提交
  16. 14 7月, 2006 1 次提交
  17. 10 6月, 2006 1 次提交
  18. 30 5月, 2006 1 次提交
  19. 05 3月, 2006 1 次提交
  20. 28 2月, 2006 1 次提交
    • T
      Extend the ExecInitNode API so that plan nodes receive a set of flag · 2c0ef977
      Tom Lane 提交于
      bits indicating which optional capabilities can actually be exercised
      at runtime.  This will allow Sort and Material nodes, and perhaps later
      other nodes, to avoid unnecessary overhead in common cases.
      This commit just adds the infrastructure and arranges to pass the correct
      flag values down to plan nodes; none of the actual optimizations are here
      yet.  I'm committing this separately in case anyone wants to measure the
      added overhead.  (It should be negligible.)
      
      Simon Riggs and Tom Lane
      2c0ef977
  21. 07 12月, 2005 1 次提交
  22. 15 10月, 2005 1 次提交
  23. 20 4月, 2005 1 次提交
    • T
      Create executor and planner-backend support for decoupled heap and index · 4a8c5d03
      Tom Lane 提交于
      scans, using in-memory tuple ID bitmaps as the intermediary.  The planner
      frontend (path creation and cost estimation) is not there yet, so none
      of this code can be executed.  I have tested it using some hacked planner
      code that is far too ugly to see the light of day, however.  Committing
      now so that the bulk of the infrastructure changes go in before the tree
      drifts under me.
      4a8c5d03
  24. 17 4月, 2005 1 次提交
  25. 07 4月, 2005 1 次提交
  26. 26 3月, 2005 1 次提交
    • T
      Improve EXPLAIN ANALYZE to show the time spent in each trigger when · adb1a6e9
      Tom Lane 提交于
      executing a statement that fires triggers.  Formerly this time was
      included in "Total runtime" but not otherwise accounted for.
      As a side benefit, we avoid re-opening relations when firing non-deferred
      AFTER triggers, because the trigger code can re-use the main executor's
      ResultRelInfo data structure.
      adb1a6e9
  27. 01 1月, 2005 1 次提交
    • P
      · 2ff50159
      PostgreSQL Daemon 提交于
      Tag appropriate files for rc3
      
      Also performed an initial run through of upgrading our Copyright date to
      extend to 2005 ... first run here was very simple ... change everything
      where: grep 1996-2004 && the word 'Copyright' ... scanned through the
      generated list with 'less' first, and after, to make sure that I only
      picked up the right entries ...
      2ff50159
  28. 24 9月, 2004 1 次提交
  29. 29 8月, 2004 1 次提交
  30. 26 5月, 2004 1 次提交
    • N
      Reimplement the linked list data structure used throughout the backend. · d0b4399d
      Neil Conway 提交于
      In the past, we used a 'Lispy' linked list implementation: a "list" was
      merely a pointer to the head node of the list. The problem with that
      design is that it makes lappend() and length() linear time. This patch
      fixes that problem (and others) by maintaining a count of the list
      length and a pointer to the tail node along with each head node pointer.
      A "list" is now a pointer to a structure containing some meta-data
      about the list; the head and tail pointers in that structure refer
      to ListCell structures that maintain the actual linked list of nodes.
      
      The function names of the list API have also been changed to, I hope,
      be more logically consistent. By default, the old function names are
      still available; they will be disabled-by-default once the rest of
      the tree has been updated to use the new API names.
      d0b4399d
  31. 03 3月, 2004 1 次提交
  32. 30 11月, 2003 1 次提交
    • P
      · 969685ad
      PostgreSQL Daemon 提交于
      $Header: -> $PostgreSQL Changes ...
      969685ad
  33. 09 8月, 2003 1 次提交
  34. 04 8月, 2003 2 次提交
  35. 22 7月, 2003 1 次提交