Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
9d6d158
I don't think we need placeholder Results(null)
labkey-matthewb Mar 25, 2025
c9fb866
null check
labkey-matthewb Mar 26, 2025
dfea40d
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-matthewb Mar 26, 2025
f38667d
DatabaseIdentifier
labkey-matthewb Mar 26, 2025
2c736b2
DatabaseIdentifier
labkey-matthewb Mar 26, 2025
b0d91ee
use SimpleFilter.getSQLFragment(tableInfo)
labkey-matthewb Mar 27, 2025
95a1806
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-matthewb Mar 27, 2025
20abb10
TableInfo.getMetaDataName()
labkey-matthewb Mar 27, 2025
7f7b305
comment
labkey-matthewb Mar 27, 2025
8c7ed0b
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-matthewb Mar 27, 2025
c5286c1
rm _defaultTableInfo
labkey-matthewb Mar 27, 2025
faca06c
sweep for usages of makeLegalIdentiier() and append(alias)
labkey-matthewb Mar 28, 2025
ede8f90
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-matthewb Apr 1, 2025
aac3d9b
DatabaseIdentifier.getString() -> getid()
labkey-matthewb Apr 3, 2025
461433f
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-matthewb Apr 3, 2025
a1f201d
more fuzz testing
labkey-matthewb Apr 3, 2025
002f9a4
fix exp.xml
labkey-matthewb Apr 3, 2025
232cf39
fix un-tabled columinfo
labkey-matthewb Apr 3, 2025
304f9c9
oops
labkey-matthewb Apr 4, 2025
b35c115
sql generation
labkey-matthewb Apr 4, 2025
047ab74
makeDatabaseIdentifier()
labkey-matthewb Apr 4, 2025
72d451f
oor
labkey-matthewb Apr 4, 2025
9d51f8d
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-matthewb Apr 4, 2025
9cbe193
!equals()
labkey-matthewb Apr 4, 2025
27f124f
search for "+ col.getAlias() +" (implicit .toString())
labkey-matthewb Apr 6, 2025
f9cb64c
support STR_TABLE_ALIAS in SimpleFilter.SQLClause
labkey-matthewb Apr 7, 2025
63bff51
support STR_TABLE_ALIAS in SimpleFilter.SQLClause
labkey-matthewb Apr 7, 2025
1e56ac1
SampleDatasetTable fix
labkey-matthewb Apr 7, 2025
c2b9144
getProperties()
labkey-matthewb Apr 7, 2025
7ca1a4b
newCohortLabel
labkey-matthewb Apr 7, 2025
7569558
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-matthewb Apr 7, 2025
556e279
replace .get(column.getAlias())
labkey-matthewb Apr 8, 2025
7864a9d
rm assert
labkey-matthewb Apr 8, 2025
4a3835b
StringBuilder -> SQLFragment
labkey-matthewb Apr 8, 2025
adc3fa2
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-matthewb Apr 8, 2025
c7ae29e
createMetaDataNameMap()
labkey-matthewb Apr 8, 2025
c486033
SQLClause reorg
labkey-matthewb Apr 8, 2025
9385307
aggregateResults map is weird
labkey-matthewb Apr 8, 2025
6d73834
StringBuilder->SQLFragment
labkey-matthewb Apr 9, 2025
12aeac0
alias.toString()
labkey-matthewb Apr 9, 2025
2a75f4d
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-matthewb Apr 9, 2025
0de749f
StringBuilder->SQLFragment
labkey-matthewb Apr 9, 2025
aa8613f
test fix?
labkey-matthewb Apr 9, 2025
49d4eb6
rename get*Name() -> get*Identifier()
labkey-matthewb Apr 9, 2025
bd03344
this one weird trick will fix your MS2Test
labkey-matthewb Apr 10, 2025
0dee942
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-matthewb Apr 10, 2025
2963fd9
generate alias for not-in-database columninfo
labkey-matthewb Apr 10, 2025
088bb0a
Long identifier truncation improvements
labkey-adam Apr 15, 2025
5895a14
Fix SQLFragment.getSQL() failures
labkey-adam Apr 15, 2025
aa34120
Remove unused ResultSet export to XML, JSON methods. Push dialect thr…
labkey-adam Apr 15, 2025
327b76c
Rolap SqlDialect
labkey-adam Apr 15, 2025
7432df6
Move some methods from AliasManager to SqlDialect. Fix some tests.
labkey-adam Apr 15, 2025
5e83d21
Move all key AliasManager methods to SqlDialect
labkey-adam Apr 16, 2025
9774354
Fall back on LCD dialect if provided dialect is null
labkey-adam Apr 16, 2025
3931cff
Junit test for fall-back dialect
labkey-adam Apr 16, 2025
e732081
Fix SQL Server truncate
labkey-adam Apr 16, 2025
05e1d93
Fix SqlDialect mem leak
labkey-adam Apr 16, 2025
f186d33
Merge remote-tracking branch 'origin/develop' into fb_long_identifiers
labkey-adam Apr 16, 2025
8423f62
truncateStartToUtf8ByteLimit()
labkey-adam Apr 16, 2025
7956e00
Simplify
labkey-adam Apr 16, 2025
d1301cb
Simplify more
labkey-adam Apr 16, 2025
f6ae1b4
Implement PostgreSQL rules
labkey-adam Apr 17, 2025
6a30b97
Fix ColumnLoggingTestCase
labkey-adam Apr 17, 2025
dacc4f9
Merge remote-tracking branch 'origin/develop' into fb_long_identifiers
labkey-adam Apr 19, 2025
acc6354
StorageNameGenerator
labkey-adam Apr 20, 2025
e4f724a
Exception for "RowId"
labkey-adam Apr 20, 2025
3628122
More lenient claimName()
labkey-adam Apr 20, 2025
fb47046
Merge remote-tracking branch 'origin/develop' into fb_long_identifiers
labkey-adam Apr 20, 2025
24dd8a9
Minor cleanup of specimen domain kinds
labkey-adam Apr 20, 2025
c378814
IntelliJ tricked me into deleting these...
labkey-adam Apr 20, 2025
aa3fb0c
Remove temporary assertions
labkey-adam Apr 21, 2025
ea235c6
StorageNameGenerator junit test
labkey-adam Apr 21, 2025
a88e780
Merge remote-tracking branch 'origin/develop' into fb_long_identifiers
labkey-adam Apr 21, 2025
db1c79c
Expand StorageColumnName and mvIndicatorStorageColumnName to eliminat…
labkey-adam Apr 21, 2025
d468977
Remove unused specimen index methods
labkey-adam Apr 21, 2025
643bfc6
Remove misplaced comment
labkey-adam Apr 21, 2025
3358b28
StringUtilsLabKey: add cyrillic example, better UTF-8 byte truncation…
labkey-adam Apr 22, 2025
aedc668
Merge remote-tracking branch 'origin/develop' into fb_long_identifiers
labkey-adam Apr 22, 2025
1388e9b
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-adam Apr 22, 2025
841ede3
Fix merge conflicts
labkey-adam Apr 23, 2025
97063a4
columnName -> columnNameFragment
labkey-adam Apr 23, 2025
03ad95f
Comments and visibility
labkey-adam Apr 23, 2025
ceea609
Mostly spelling
labkey-adam Apr 23, 2025
06c4650
remove AntTask debug hack
labkey-matthewb Apr 28, 2025
23415fd
Imports
labkey-adam Apr 29, 2025
867293b
Merge remote-tracking branch 'origin/develop' into fb_long_identifiers
labkey-adam Apr 29, 2025
c6a8b7c
Merge remote-tracking branch 'origin/develop' into fb_databaseidentifier
labkey-matthewb Apr 30, 2025
d786698
Merge branch 'fb_databaseidentifier' into fb_long_identifiers
labkey-adam Apr 30, 2025
2f8fa85
Get platform building again
labkey-adam Apr 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions api/schemas/expTypes.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,8 @@
<xs:complexType name="SampleSetType">
<xs:sequence>
<xs:element name="Name" type="string" minOccurs="1"/>
<xs:element name="MaterialLSIDPrefix" type="string" minOccurs="1"/>
<xs:element name="TableTitle" type="xs:string" minOccurs="0" />
<xs:element name="MaterialLSIDPrefix" type="string" minOccurs="1"/>
<xs:element name="Description" type="string" minOccurs="0" />
<xs:element name="KeyField" type="string" minOccurs="0" maxOccurs="3" />
<xs:element name="ParentField" type="string" minOccurs="0" maxOccurs="1" />
Expand All @@ -461,6 +462,7 @@
<xs:complexType name="DataClassType">
<xs:sequence>
<xs:element name="Name" type="string" minOccurs="1"/>
<xs:element name="TableTitle" type="xs:string" minOccurs="0" />
<xs:element name="Description" type="string" minOccurs="0" />
<xs:element name="NameExpression" type="string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Category" type="string" minOccurs="0" />
Expand All @@ -487,7 +489,8 @@
<xs:complexType name="DomainDescriptorType">
<xs:sequence>
<xs:element name="Name" type="string" minOccurs="0"/>
<xs:element name="DomainURI" type="string" minOccurs="0"/>
<xs:element name="TableTitle" type="xs:string" minOccurs="0" />
<xs:element name="DomainURI" type="string" minOccurs="0"/>
<xs:element name="Description" type="string" minOccurs="0"/>
<xs:element name="PropertyDescriptor" type="exp:PropertyDescriptorType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
Expand Down
1 change: 0 additions & 1 deletion api/src/org/labkey/api/ApiModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,6 @@ public void registerServlets(ServletContext servletCtx)
RReport.TestCase.class,
RemoveDuplicatesDataIterator.DeDuplicateTestCase.class,
ReplacedRunFilter.TestCase.class,
ResultSetUtil.TestCase.class,
SQLFragment.UnitTestCase.class,
Sampler.TestCase.class,
SchemaKey.TestCase.class,
Expand Down
2 changes: 1 addition & 1 deletion api/src/org/labkey/api/assay/AbstractAssayProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -2150,7 +2150,7 @@ private void updateResultFiles(FilteredTable assayResultTable, List<ExpRun> runs
var realFileColumn = realTable.getColumn(fileField);
updateSql = new SQLFragment("UPDATE ").append(assayResultTable.getRealTable())
.append(" SET ")
.appendIdentifier(realFileColumn.getSelectName())
.appendIdentifier(realFileColumn.getSelectIdentifier())
.append(" = ").appendValue(updatedFile.getAbsolutePath())
.append(" WHERE rowId = ").appendValue(resultRowId);
new SqlExecutor(assayResultTable.getSchema()).execute(updateSql);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
import org.labkey.api.data.ColumnInfo;
import org.labkey.api.data.RenderContext;
import org.labkey.api.data.SimpleDisplayColumn;
import org.labkey.api.data.TableInfo;
import org.labkey.api.query.FieldKey;
import org.labkey.api.util.HtmlString;
import org.labkey.api.util.HtmlStringBuilder;
import org.labkey.api.view.HttpView;
Expand All @@ -33,11 +35,11 @@ public class AssayDataCollectorDisplayColumn extends SimpleDisplayColumn
private final AssayRunUploadForm _form;
private ColumnInfo _col;

public AssayDataCollectorDisplayColumn(AssayRunUploadForm form)
public AssayDataCollectorDisplayColumn(TableInfo table, AssayRunUploadForm form)
{
_form = form;
setCaption("Run Data");
var col = new BaseColumnInfo("Run Data");
var col = new BaseColumnInfo(FieldKey.fromParts("Run Data"), table);
col.setInputType("file");
_col = col;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -643,7 +643,7 @@ protected ModelAndView getRunPropertiesView(FormType newRunForm, boolean errorRe
addSampleInputColumns(newRunForm, insertView);
if (shouldShowDataCollectorUI(newRunForm))
{
insertView.getDataRegion().addDisplayColumn(new AssayDataCollectorDisplayColumn(newRunForm));
insertView.getDataRegion().addDisplayColumn(new AssayDataCollectorDisplayColumn(table, newRunForm));
}

if (warnings)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,6 @@ private SQLFragment getLookupColumnSql(TableInfoKey tableInfoKey, SampleLookup s

var column = sampleLookup.columnInfo;
var table = tableInfoKey.table;
var columnName = table.getSqlDialect().getColumnSelectName(column.getAlias());

var tableFilter = new SimpleFilter(tableInfoKey.keyColumn.getFieldKey(), expRunRowId);
tableFilter.addCondition(column.getFieldKey(), null, CompareType.NONBLANK);
Expand All @@ -387,16 +386,16 @@ private SQLFragment getLookupColumnSql(TableInfoKey tableInfoKey, SampleLookup s

if (column.getJdbcType().isInteger())
{
sql.append("SELECT DA.").append(columnName).append(" AS MaterialRowId");
sql.append("SELECT DA.").appendIdentifier(column.getAlias()).append(" AS MaterialRowId");
sql.append(", ?").add(role).append(" AS MaterialInputRole\n");
sql.append(" FROM (").append(tableSql).append(") DA");
}
else if (column.getJdbcType().isText())
{
sql.append("SELECT MA.RowId").append(" AS MaterialRowId");
sql.append(", ?").add(role).append(" AS MaterialInputRole\n");
sql.append("SELECT MA.RowId AS MaterialRowId");
sql.append(", ").appendValue(role).append(" AS MaterialInputRole\n");
sql.append(" FROM exp.Material MA\n");
sql.append(" INNER JOIN (").append(tableSql).append(") DA ON MA.name = DA.").append(columnName).append("\n");
sql.append(" INNER JOIN (").append(tableSql).append(") DA ON MA.name = DA.").appendIdentifier(column.getAlias()).append("\n");

if (sampleLookup.expSampleType != null)
sql.append(" WHERE MA.MaterialSourceId = ?").add(sampleLookup.expSampleType.getRowId()).append("\n");
Expand Down
2 changes: 1 addition & 1 deletion api/src/org/labkey/api/audit/AuditHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ static Pair<Map<String, Object>, Map<String, Object>> getOldAndNewRecordForMerge
String nameFromAlias = null != col
? col.getName()
: columns.stream()
.filter(column -> column.getAlias().equalsIgnoreCase(key))
.filter(column -> column.getAlias().getId().equalsIgnoreCase(key))
.map((ColumnInfo::getName))
.findFirst()
.orElse(key);
Expand Down
14 changes: 7 additions & 7 deletions api/src/org/labkey/api/data/AbstractPropertyStore.java
Original file line number Diff line number Diff line change
Expand Up @@ -119,10 +119,10 @@ public WritablePropertyMap getWritableProperties(String category, boolean create
// Delete properties associated with this store
void deleteProperties(Container c)
{
String setSelectName = _prop.getTableInfoProperties().getColumn("Set").getSelectName(); // Keyword in some dialects
SQLFragment deleteProps = new SQLFragment("DELETE FROM " + _prop.getTableInfoProperties().getSelectName() +
" WHERE " + setSelectName + " IN " +
"(SELECT " + setSelectName + " FROM " + _prop.getTableInfoPropertySets().getSelectName() + " WHERE ObjectId = ? AND ", c);
var setSelectName = _prop.getTableInfoProperties().getColumn("Set").getSelectIdentifier(); // Keyword in some dialects
SQLFragment deleteProps = new SQLFragment("DELETE FROM ").append(_prop.getTableInfoProperties().getSQLName())
.append(" WHERE ").appendIdentifier(setSelectName).append(" IN ")
.append("(SELECT ").appendIdentifier(setSelectName).append(" FROM ").append(_prop.getTableInfoPropertySets().getSQLName()).append(" WHERE ObjectId = ? AND ").add(c);
appendWhereFilter(deleteProps);
deleteProps.append(")");
new SqlExecutor(_prop.getSchema()).execute(deleteProps);
Expand Down Expand Up @@ -217,10 +217,10 @@ private record PropertySet(int set, String encryption){}
public PropertyMap getPropertyMapFromDatabase(User user, Container container, String category)
{
ColumnInfo setColumn = _prop.getTableInfoProperties().getColumn("Set");
String setSelectName = setColumn.getSelectName(); // Keyword in some dialects
var setSelectName = setColumn.getSelectIdentifier(); // Keyword in some dialects

SQLFragment sql = new SQLFragment("SELECT " + setSelectName + ", Encryption FROM " + _prop.getTableInfoPropertySets() +
" WHERE UserId = ? AND ObjectId = ? AND Category = ?", user, container, category);
SQLFragment sql = new SQLFragment("SELECT ").appendIdentifier(setSelectName).append(", Encryption FROM ").append(_prop.getTableInfoPropertySets())
.append(" WHERE UserId = ? AND ObjectId = ? AND Category = ?").addAll(user, container, category);

PropertySet propertySet = new SqlSelector(_prop.getSchema(), sql).getObject(PropertySet.class);
if (propertySet == null)
Expand Down
7 changes: 3 additions & 4 deletions api/src/org/labkey/api/data/AbstractTableInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -372,9 +372,9 @@ public DatabaseTableType getTableType()
public SQLFragment getFromSQL(String alias)
{
if (null != getSelectName())
return new SQLFragment().appendIdentifier(getSelectName()).append(" ").append(alias);
return new SQLFragment().appendIdentifier(getSelectName()).append(" ").appendIdentifier(alias);
else
return new SQLFragment().append("(").append(getFromSQL()).append(") ").append(alias);
return new SQLFragment().append("(").append(getFromSQL()).append(") ").appendIdentifier(alias);
}

/** When a table a) overrides (String alias, Set<FieldKey> cols) b) has CalculatedColumns we need to make sure that
Expand Down Expand Up @@ -1741,9 +1741,8 @@ public void overlayMetadata(Collection<TableType> metadata, UserSchema schema, C
}
}

@Nullable
@Override
public String getMetaDataName()
public @Nullable DatabaseIdentifier getMetaDataIdentifier()
{
return null;
}
Expand Down
18 changes: 12 additions & 6 deletions api/src/org/labkey/api/data/AbstractWrappedColumnInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,21 +68,21 @@ public boolean isAliasSet()
}

@Override
public String getAlias()
public DatabaseIdentifier getAlias()
{
return delegate.getAlias();
}

@Override
public String getMetaDataName()
public DatabaseIdentifier getMetaDataIdentifier()
{
return delegate.getMetaDataName();
return delegate.getMetaDataIdentifier();
}

@Override
public String getSelectName()
public DatabaseIdentifier getSelectIdentifier()
{
return delegate.getSelectName();
return delegate.getSelectIdentifier();
}

@Override
Expand Down Expand Up @@ -387,6 +387,12 @@ public String getColumnName()
return getName();
}

@Override
public int findColumn(ResultSet rs) throws SQLException
{
return delegate.findColumn(rs);
}

@Override
public Object getValue(ResultSet rs) throws SQLException
{
Expand All @@ -412,7 +418,7 @@ public Object getValue(RenderContext context)
}

@Override
public Object getValue(Map<String, ?> map)
public Object getValue(Map<?, ?> map)
{
return delegate.getValue(map);
}
Expand Down
Loading