H(a|e)llo Jochen,

thank you for your reply.

@POJO is a Groovy 4 only feature, so I spent several hours getting our project to build under groovy-4.0.11, then started profiling with different settings, with the following results:

1. The good news is, that we might have pinpointed the or at least one
   of the major reasons for the 2-3x performance drop when switching
   our project from Groovy 3 -> 4:
    1. The TBKMS_Table ctor call takes about 2 to 4 times as long on
       average when using groovy-4.0.11 out-of-the-box (i.e. indy),
       compared to other Groovy varieties (see below).
    2. https://issues.apache.org/jira/browse/GROOVY-10307
2. The not-so-good thing is, that alas the performance of non-indy
   groovy-4.0.11 with @CompileStatic @POJO on all involved traits is
   still a little bit slower than groovy-3.0.14 (default, i.e. non-indy)...
3. I have attached the performance measurements for different Groovy
   versions / compiler settings
    1. Average performance for calling the TBKMS_Table ctor ranges from
        > 400ms for groovy-4.0.11 out-of-the-box to < 100ms for
       groovy-3.0.14
    2. The expected/required performance would be < 1ms
4. I also attached the decompiled ctor for the TBKMS_Table class, one
   of the two Table classes that compete for the longest ctor execution
   time (both all-in-all depend on about the same number of traits).
    1. Regarding the trait classes: At the location corresponding to
       the involved traits package path I could only see some very
       small, trivial interface class files in IntelliJ...

Cheers,
mg


On 07/05/2023 12:40, Jochen Theodorou wrote:
On 07.05.23 00:56, MG wrote:
Hi guys,

we have (a bit of an urgent) performance problem: The SQL generation
part that is an elemental part of our framework has become too slow in
certain key cases in the most recent extension to our main web application.
We have finally narrowed the cause down to what looks like the main
bottleneck, and to our surprise it is a very harmless looking ctor call
that every Table class uses to internally create references of itself:

Table(String name, String shortName, Table parentTable = null, boolean
isReference = false, Schema schema = null) {
     super(name) // Base class just stores name in String field
     this.parentTable = parentTable
     this.shortName = shortName
     this.isReferenceTable = isReference
     this.schema = schema
     this.originalTableField = parentTable?.originalTableField
}
The cost of the ctor should be something like:

   cost for delegating this-call (1)
+  cost for super-call (2)
+  cost for initiating the trait helpers (3)
+  cost for setting fields (4)

[...]
The KMS, TBKMS, etc classes look harmless enough, and the only thing I
can see is, that it seems the performance degradation seems to be tied
to the number of traits the class depends on.

That speaks for (3) getting out of hand.

It could be the meta class generation... if you have one class and 5
traits, then you generate 1 meta class for the class itself and 1 for
each helper, that would mean then 6.

And that even though the helpers do not need meta classes in my opinion.


[...]
If any one has any suggestions how to speed up our scenario, that would
be appreciated. The code this applies to is a mix of predominantly
static & some dynamic Groovy...

If possible could you use @CompileStatic @POJO on the traits and see if
that improves things? This would reduce the number of generated meta
classes in the constructor at least. They might be still created of
course. So maybe it is no complete solution. But if you can put it on
even some of the traits the improvement should be noticeable. Then we
know for sure that this is the problem and discuss further steps.

Otherwise I would have to see the bytecode of the ctors of the trait
helpers and the table class to say more

bye Jochen
package entities.schema.tables.editor;

import entities.schema.tables.KM_Table;
import entities.schema.tables.TBKM_Table;
import entities.schema.tables.TB_Table;
import entities.schema.tables.shared.TbkmConnectionTable;
import entities.schema.tables.shared.TbkmConnectionTable.Trait.FieldHelper;
import entities.schema.tables.shared.TbkmConnectionTable.Trait.Helper;
import entities.schema.tables.shared.base.FlagsColumnsTrait;
import entities.schema.tables.shared.base.XyzColumnTrait;
import entities.schema.tables.shared.base.VisColumnTrait;
import groovyannotations.TkTableAnnotation;
import groovyschema.supplier.TableInstancesGroovyIdh;
import groovyschema.tables.EntityTable;
import groovysql.sql.annotations.ColumnAnnotation;
import groovysql.sql.annotations.TableIdAnnotation;
import groovysql.sql.column.Column;
import groovysql.sql.ref.TableRefColumn;
import groovysql.sql.schema.Schema;
import groovysql.sql.table.Table;
import groovysql.sql.types.SqlTypes;
import groovy.lang.GroovyObject;
import groovy.lang.MetaClass;
import groovy.transform.Generated;
import groovy.transform.Internal;
import java.beans.Transient;
import java.util.List;
import org.codehaus.groovy.runtime.ScriptBytecodeAdapter;
import org.codehaus.groovy.transform.trait.Traits.TraitBridge; 

@TdTableAnnotation
@TableIdAnnotation(id = 123)
public class TBKMS_Table extends TkEditorSourceTable implements 
TbkmConnectionTable, FieldHelper, 
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.FieldHelper, 
entities.schema.tables.shared.base.XyzColumnTrait.Trait.FieldHelper, 
entities.schema.tables.shared.base.VisColumnTrait.Trait.FieldHelper {
    private final Column TB_TID;
    private final Column EXX_TB_ID;
    private final Column EXX_KM_ID;
    private final TableRefColumn<TB_Table> 
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III;
    private final TableRefColumn<KM_Table> 
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III;
    private final Column 
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL;
    private Column 
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__TAG;
    private Column 
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__FL_TAG;
    private final Column 
entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ;
    private final Column 
entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ;

    @Generated
    public TBKMS_Table(String param0, String param1, Table param2, boolean 
param3, Schema param4) {
        super((String)param0, (String)param1, (Table)param2, param3, 
(Schema)param4);
        Column var6 = this.colThis("TB_TID", 
TableInstancesGroovyIdh.TABLE.getID());
        this.TB_TID = var6;
        Column var7 = this.colThis("EXX_TB_ID", SqlTypes.NUMBER(15));
        this.EXX_TB_ID = var7;
        Column var8 = this.colThis("EXX_KM_ID", SqlTypes.NUMBER(15));
        this.EXX_KM_ID = var8;
        TableRefColumn var9 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III 
= var9;
        TableRefColumn var10 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III 
= var10;
        Column var11 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL = 
var11;
        Helper.$init$(this);
        Object var10000 = null;
        
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$init$(this);
        var10000 = null;
        
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$init$(this);
        var10000 = null;
        Column var12 = 
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ(this);
        
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ = 
var12;
        
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$(this);
        var10000 = null;
        Column var13 = 
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ(this);
        
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ = 
var13;
        
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$(this);
        var10000 = null;
    }

    @Generated
    public TBKMS_Table(String param0, String param1, Table param2, boolean 
param3) {
        super((String)param0, (String)param1, (Table)param2, param3);
        Column var5 = this.colThis("TB_TID", 
TableInstancesGroovyIdh.TABLE.getID());
        this.TB_TID = var5;
        Column var6 = this.colThis("EXX_TB_ID", SqlTypes.NUMBER(15));
        this.EXX_TB_ID = var6;
        Column var7 = this.colThis("EXX_KM_ID", SqlTypes.NUMBER(15));
        this.EXX_KM_ID = var7;
        TableRefColumn var8 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III 
= var8;
        TableRefColumn var9 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III 
= var9;
        Column var10 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL = 
var10;
        Helper.$init$(this);
        Object var10000 = null;
        
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$init$(this);
        var10000 = null;
        
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$init$(this);
        var10000 = null;
        Column var11 = 
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ(this);
        
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ = 
var11;
        
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$(this);
        var10000 = null;
        Column var12 = 
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ(this);
        
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ = 
var12;
        
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$(this);
        var10000 = null;
    }

    @Generated
    public TBKMS_Table(String param0, String param1, Table param2) {
        super((String)param0, (String)param1, (Table)param2);
        Column var4 = this.colThis("TB_TID", 
TableInstancesGroovyIdh.TABLE.getID());
        this.TB_TID = var4;
        Column var5 = this.colThis("EXX_TB_ID", SqlTypes.NUMBER(15));
        this.EXX_TB_ID = var5;
        Column var6 = this.colThis("EXX_KM_ID", SqlTypes.NUMBER(15));
        this.EXX_KM_ID = var6;
        TableRefColumn var7 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III 
= var7;
        TableRefColumn var8 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III 
= var8;
        Column var9 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL = 
var9;
        Helper.$init$(this);
        Object var10000 = null;
        
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$init$(this);
        var10000 = null;
        
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$init$(this);
        var10000 = null;
        Column var10 = 
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ(this);
        
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ = 
var10;
        
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$(this);
        var10000 = null;
        Column var11 = 
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ(this);
        
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ = 
var11;
        
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$(this);
        var10000 = null;
    }

    @Generated
    public TBKMS_Table(String param0, String param1) {
        super((String)param0, (String)param1);
        Column var3 = this.colThis("TB_TID", 
TableInstancesGroovyIdh.TABLE.getID());
        this.TB_TID = var3;
        Column var4 = this.colThis("EXX_TB_ID", SqlTypes.NUMBER(15));
        this.EXX_TB_ID = var4;
        Column var5 = this.colThis("EXX_KM_ID", SqlTypes.NUMBER(15));
        this.EXX_KM_ID = var5;
        TableRefColumn var6 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III 
= var6;
        TableRefColumn var7 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III 
= var7;
        Column var8 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL = 
var8;
        Helper.$init$(this);
        Object var10000 = null;
        
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$init$(this);
        var10000 = null;
        
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$init$(this);
        var10000 = null;
        Column var9 = 
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ(this);
        
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ = 
var9;
        
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$(this);
        var10000 = null;
        Column var10 = 
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ(this);
        
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ = 
var10;
        
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$(this);
        var10000 = null;
    }

    @Generated
    public TBKMS_Table(String param0) {
        super((String)param0);
        Column var2 = this.colThis("TB_TID", 
TableInstancesGroovyIdh.TABLE.getID());
        this.TB_TID = var2;
        Column var3 = this.colThis("EXX_TB_ID", SqlTypes.NUMBER(15));
        this.EXX_TB_ID = var3;
        Column var4 = this.colThis("EXX_KM_ID", SqlTypes.NUMBER(15));
        this.EXX_KM_ID = var4;
        TableRefColumn var5 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III 
= var5;
        TableRefColumn var6 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III 
= var6;
        Column var7 = 
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL(this);
        
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL = 
var7;
        Helper.$init$(this);
        Object var10000 = null;
        
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$init$(this);
        var10000 = null;
        
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$init$(this);
        var10000 = null;
        Column var8 = 
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ(this);
        
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ = 
var8;
        
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$(this);
        var10000 = null;
        Column var9 = 
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ(this);
        
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ = 
var9;
        
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$(this);
        var10000 = null;
    }

    public static TBKMS_Table getTBKMS() {
        return getIt();
    }

    public EntityTable getEntityTable() {
        return TBKM_Table.getTBKM();
    }

    @ColumnAnnotation(
        isColumnQ = false
    )
    public Column getObbEidFilterCol() {
        return (Column)ScriptBytecodeAdapter.castToType((Object)null, 
Column.class);
    }

    public TBKMS_Table reference() {
        return (TBKMS_Table)ScriptBytecodeAdapter.castToType(super.reference(), 
TBKMS_Table.class);
    }

    public List<String> getAlternateNames() {
        return ScriptBytecodeAdapter.createList(new Object[]{"ABC"});
    }

    @Generated
    private static final TBKMS_Table 
entities_schema_tables_entities_vkt_editor_TBKMS_Table$TBKMS_TableHolder_it_initExpr()
 {
        return new TBKMS_Table("TBKMS");
    }

    @Generated
    public static TBKMS_Table getIt() {
        return 
TBKMS_Table.TBKMS_TableHolder_it.pfaccess$0((TBKMS_Table.TBKMS_TableHolder_it)null);
    }

    @Generated
    @TraitBridge(
        traitClass = TbkmConnectionTable.class,
        desc = "()Lgroovysql/sql/ref/TableRefColumn;"
    )
    public final TableRefColumn<TB_Table> getTB_EID_III() {
        return Helper.getTB_EID_III(this);
    }

    @Generated
    @TraitBridge(
        traitClass = TbkmConnectionTable.class,
        desc = "()Lgroovysql/sql/ref/TableRefColumn;"
    )
    public final TableRefColumn<KM_Table> getKM_EID_III() {
        return Helper.getKM_EID_III(this);
    }

    @Generated
    @TraitBridge(
        traitClass = TbkmConnectionTable.class,
        desc = "()Lgroovysql/sql/column/Column;"
    )
    public final Column getPROFIL() {
        return Helper.getPROFIL(this);
    }

    static {
        Helper.$static$init$(TBKMS_Table.class);
        Object var10000 = null;
        
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$static$init$(TBKMS_Table.class);
        var10000 = null;
        
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$static$init$(TBKMS_Table.class);
        var10000 = null;
        
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$static$init$(TBKMS_Table.class);
        var10000 = null;
        
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$static$init$(TBKMS_Table.class);
        var10000 = null;
    }

    @Generated
    public TableRefColumn<TB_Table> 
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III$get()
 {
        return 
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III;
    }

    @Generated
    public TableRefColumn<KM_Table> 
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III$get()
 {
        return 
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III;
    }

    @Generated
    public Column 
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL$get() {
        return 
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL;
    }

    @Generated
    public TableRefColumn<TB_Table> 
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III$set(TableRefColumn<TB_Table>
 val) {
        return null;
    }

    @Generated
    public TableRefColumn<KM_Table> 
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III$set(TableRefColumn<KM_Table>
 val) {
        return null;
    }

    @Generated
    public Column 
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL$set(Column
 val) {
        return null;
    }

    @Generated
    @TraitBridge(
        traitClass = FlagsColumnsTrait.class,
        desc = "()Lgroovysql/sql/column/Column;"
    )
    public Column getTAG() {
        return 
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.getTAG(this);
    }

    @Generated
    @TraitBridge(
        traitClass = FlagsColumnsTrait.class,
        desc = "(Lgroovysql/sql/column/Column;)V"
    )
    public void setTAG(Column TAG) {
        
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.setTAG(this, 
TAG);
        Object var10000 = null;
    }

    @Generated
    @TraitBridge(
        traitClass = FlagsColumnsTrait.class,
        desc = "()Lgroovysql/sql/column/Column;"
    )
    public Column getFL_TAG() {
        return 
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.getFL_TAG(this);
    }

    @Generated
    @TraitBridge(
        traitClass = FlagsColumnsTrait.class,
        desc = "(Lgroovysql/sql/column/Column;)V"
    )
    public void setFL_TAG(Column FL_TAG) {
        
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.setFL_TAG(this,
 FL_TAG);
        Object var10000 = null;
    }

    @Generated
    public Column 
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__TAG$get() {
        return 
this.entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__TAG;
    }

    @Generated
    public Column 
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__FL_TAG$get() 
{
        return 
this.entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__FL_TAG;
    }

    @Generated
    public Column 
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__TAG$set(Column
 val) {
        
this.entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__TAG = 
val;
        return val;
    }

    @Generated
    public Column 
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__FL_TAG$set(Column
 val) {
        
this.entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__FL_TAG 
= val;
        return val;
    }

    @Generated
    @TraitBridge(
        traitClass = XyzColumnTrait.class,
        desc = "()Lgroovysql/sql/column/Column;"
    )
    public final Column getXYZQ() {
        return 
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.getXYZQ(this);
    }

    @Generated
    public Column 
entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ$get() {
        return 
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ;
    }

    @Generated
    public Column 
entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ$set(Column 
val) {
        return null;
    }

    @Generated
    @TraitBridge(
        traitClass = VisColumnTrait.class,
        desc = "()Lgroovysql/sql/column/Column;"
    )
    public final Column getVISQ() {
        return 
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.getVISQ(this);
    }

    @Generated
    public Column 
entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ$get() {
        return 
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ;
    }

    @Generated
    public Column 
entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ$set(Column 
val) {
        return null;
    }

    @Generated
    public final Column getTB_TID() {
        return this.TB_TID;
    }

    @Generated
    public final Column getEXX_TB_ID() {
        return this.EXX_TB_ID;
    }

    @Generated
    public final Column getEXX_KM_ID() {
        return this.EXX_KM_ID;
    }

    private static class TBKMS_TableHolder_it implements GroovyObject {
        private static final TBKMS_Table INSTANCE;

        @Generated
        public TBKMS_TableHolder_it() {
            MetaClass var1 = this.$getStaticMetaClass();
            this.metaClass = var1;
        }

        @Generated
        @Internal
        @Transient
        public MetaClass getMetaClass() {
            MetaClass var10000 = this.metaClass;
            if (var10000 != null) {
                return var10000;
            } else {
                this.metaClass = this.$getStaticMetaClass();
                return this.metaClass;
            }
        }

        @Generated
        @Internal
        public void setMetaClass(MetaClass var1) {
            this.metaClass = var1;
        }

        static {
            TBKMS_Table var0 = TBKMS_Table.access$0((TBKMS_Table)null);
            INSTANCE = var0;
        }
    }
}
kmQuery - groovy-4.0.11 (regular traits, invoke-dynamic)

[ZC, 0]
[KG, 0.6010638298]
[VE, 0.9479166667]
[TBK, 1.78125]
[PE, 4.0574712644]
[OX, 14.9972972973]
[LS, 18.4692307692]
[RA, 25.3125]
[US, 27.5806451613]
[PEOX, 126]
[TB, 155.4]
[KM, 180.4666666667]
[KMS, 259.6]
[TBKMS, 405.25]

[ZC, 0.25]
[KG, 0.8936170213]
[VE, 1.2453703704]
[TBK, 2.4375]
[PE, 4.8189655172]
[OX, 16.9824324324]
[LS, 20.6076923077]
[RA, 27.25]
[US, 32.0725806452]
[PEOX, 143.5]
[TB, 174.6]
[KM, 187.5333333333]
[KMS, 302]
[TBKMS, 433.1]



kmQuery - groovy-4.0.11 (mostly regular traits, non-invoke-dynamic)

[ZC, 0]
[VE, 0.1261574074]
[KG, 0.1436170213]
[PE, 0.5977011494]
[TBK, 0.8125]
[OX, 4.0581081081]
[US, 8.8790322581]
[LS, 10.5230769231]
[RA, 25.78125]
[PEOX, 52.46875]
[KM, 55.2333333333]
[TB, 64.2666666667]
[TBKMS, 124.85]
[KMS, 135.7]



kmQuery - groovy-4.0.11 (@POJO STC traits, non-invoke-dynamic)

[ZC, 0]
[VE, 0.0740740741]
[KG, 0.1382978723]
[PE, 0.6839080460]
[TBK, 0.84375]
[OX, 4.2743243243]
[US, 9.5161290323]
[LS, 11.3307692308]
[RA, 27.09375]
[PEOX, 55.671875]
[KM, 59.5666666667]
[TB, 70.0333333333]
[TBKMS, 127.45]
[KMS, 148.7]

[ZC, 0]
[VE, 0.1504629630]
[KG, 0.1702127660]
[TBK, 0.9375]
[PE, 1.4942528736]
[OX, 6.8472972973]
[LS, 7.8923076923]
[US, 9.5483870968]
[RA, 10.125]
[PEOX, 64.9375]
[TB, 71.7666666667]
[KM, 82.9666666667]
[KMS, 126.4]
[TBKMS, 174.1]



kmQuery - groovy-4.0.11 (literal @POJO STC traits, non-invoke-dynamic)

[ZC, 0]
[VE, 0.0844907407]
[KG, 0.1117021277]
[PE, 0.4339080460]
[TBK, 0.78125]
[OX, 3.6729729730]
[US, 7.9919354839]
[LS, 10.2230769231]
[RA, 26.5]
[PEOX, 49.6875]
[KM, 53.2]
[TB, 64.4666666667]
[TBKMS, 115.85]
[KMS, 124.5]

[ZC, 0]
[VE, 0.0821759259]
[KG, 0.1382978723]
[PE, 0.4741379310]
[TBK, 0.71875]
[OX, 3.8337837838]
[US, 8.3306451613]
[LS, 9.7230769231]
[RA, 23.34375]
[PEOX, 49.84375]
[KM, 54.1333333333]
[TB, 60.5666666667]
[TBKMS, 119.8]
[KMS, 132.65]



kmQuery - groovy-3.0.14 (regular traits, non-invoke-dynamic)

[ZC, 0]
[VE, 0.0451388889]
[KG, 0.1382978723]
[PE, 0.1839080460]
[TBK, 1.25]
[OX, 2.3202702703]
[US, 6.4677419355]
[LG, 7.6076923077]
[RA, 19.65625]
[PEOX, 33.203125]
[KM, 36.2333333333]
[TB, 48.7333333333]
[TBKMS, 90]
[KMS, 91.9]


Reply via email to