Guest User

Untitled

a guest
Nov 14th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.91 KB | None | 0 0
  1. @Override
  2.     protected List<TableDefinition> getTables0() throws SQLException {
  3.         List<TableDefinition> result = new ArrayList<TableDefinition>();
  4.  
  5.         Select<Record6<String, String, String, Boolean, BigDecimal, String>> empty =
  6.             select(inline(""), inline(""), inline(""), inline(false), inline(BigDecimal.ZERO), inline(""))
  7.             .where(falseCondition());
  8.  
  9.         for (Record record : create()
  10.                 .select()
  11.                 // Ordinary tables
  12.                 .from(
  13.                      select(
  14.                         ALL_TAB_COMMENTS.OWNER,
  15.                         ALL_TAB_COMMENTS.TABLE_NAME,
  16.                         ALL_TAB_COMMENTS.COMMENTS,
  17.                         inline(false).as("table_valued_function"),
  18.                         inline(BigDecimal.ZERO).as(ALL_OBJECTS.OBJECT_ID),
  19.                         inline("").as(ALL_ARGUMENTS.OVERLOAD))
  20.                     .from(ALL_TAB_COMMENTS)
  21.                     .where(ALL_TAB_COMMENTS.OWNER.in(getInputSchemata()))
  22.  
  23.                 // Materialized views
  24.                 .unionAll(
  25.                         select(
  26.                             ALL_OBJECTS.OWNER,
  27.                             ALL_OBJECTS.OBJECT_NAME.as("MVIEW_NAME"),
  28.                             ALL_MVIEW_COMMENTS.COMMENTS,
  29.                             inline(false).as("table_valued_function"),
  30.                             inline(BigDecimal.ZERO).as(ALL_OBJECTS.OBJECT_ID),
  31.                             inline("").as(ALL_ARGUMENTS.OVERLOAD))
  32.                         .from(ALL_OBJECTS)
  33.                         .leftOuterJoin(ALL_MVIEW_COMMENTS)
  34.                             .on(ALL_OBJECTS.OBJECT_NAME.eq(ALL_MVIEW_COMMENTS.MVIEW_NAME))
  35.                             .and(ALL_OBJECTS.OWNER.eq(ALL_MVIEW_COMMENTS.OWNER))
  36.                         .where(ALL_OBJECTS.OWNER.in(getInputSchemata()).and(ALL_OBJECTS.OBJECT_TYPE.eq("MATERIALIZED VIEW")))
  37.  
  38.                     ))
  39.  
  40.                 // Table-valued functions
  41.                 .unionAll(
  42.                     tableValuedFunctions()
  43.  
  44.                     ?   select(
  45.                             ALL_OBJECTS.OWNER,
  46.                             ALL_OBJECTS.OBJECT_NAME,
  47.                             inline(""),
  48.                             inline(true).as("table_valued_function"),
  49.                             ALL_OBJECTS.OBJECT_ID,
  50.                             ALL_ARGUMENTS.OVERLOAD)
  51.                         .from(ALL_OBJECTS)
  52.                         .join(ALL_ARGUMENTS)
  53.                             .on(ALL_OBJECTS.OWNER.eq(ALL_ARGUMENTS.OWNER))
  54.                             .and(ALL_OBJECTS.OBJECT_NAME.eq(ALL_ARGUMENTS.OBJECT_NAME))
  55.                         .where(ALL_OBJECTS.OWNER.in(getInputSchemata())
  56.                             .and(ALL_OBJECTS.OBJECT_TYPE.in("FUNCTION")))
  57.                             .and(ALL_ARGUMENTS.POSITION.eq(inline(BigDecimal.ZERO)))
  58.                             .and(ALL_ARGUMENTS.DATA_LEVEL.eq(inline(BigDecimal.ZERO)))
  59.                             .and(ALL_ARGUMENTS.IN_OUT.eq(inline("OUT")))
  60.                             .and(ALL_ARGUMENTS.DATA_TYPE.in(inline("VARRAY"), inline("TABLE")))
  61.  
  62.                     :    empty)
  63.                 .orderBy(1, 2)
  64.                 .fetch()) {
  65.  
  66.             SchemaDefinition schema = getSchema(record.get(ALL_TAB_COMMENTS.OWNER));
  67.             String name = record.get(ALL_TAB_COMMENTS.TABLE_NAME);
  68.             String comment = record.get(ALL_TAB_COMMENTS.COMMENTS);
  69.             boolean tableValuedFunction = record.get("table_valued_function", boolean.class);
  70.             BigDecimal objectId = record.get(ALL_OBJECTS.OBJECT_ID);
  71.             String overload = record.get(ALL_ARGUMENTS.OVERLOAD);
  72.  
  73.             if (tableValuedFunction)
  74.                 result.add(new OracleTableValuedFunction(schema, null, name, comment, objectId, overload));
  75.             else
  76.                 result.add(new OracleTableDefinition(schema, name, comment));
  77.         }
  78.  
  79.         return result;
  80.     }
Add Comment
Please, Sign In to add comment