mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
anvar.ramazanov/DBE-18952
Make PostgreSQL array size configurable, disallow arrays when trimmed, and fix issues with trimmed fields in WHERE clause. Merge-request: IJ-MR-153889 Merged-by: Anvar Ramazanov <anvar.ramazanov@jetbrains.com> GitOrigin-RevId: 85e79a43e8ee4b2ef9c123aaeb404d4b0c142e0e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
d9d1affc9c
commit
e08ebd59a6
@@ -2,10 +2,10 @@ package com.intellij.database.extractors;
|
||||
|
||||
import com.intellij.database.datagrid.GridColumn;
|
||||
import com.intellij.database.datagrid.JdbcColumnDescriptor;
|
||||
import com.intellij.database.remote.jdbc.LobInfo;
|
||||
import com.intellij.database.run.ReservedCellValue;
|
||||
import com.intellij.database.run.ui.grid.editors.FormatsCache;
|
||||
import com.intellij.database.run.ui.grid.editors.Formatter;
|
||||
import com.intellij.database.util.LobInfoHelper;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.containers.ClassMap;
|
||||
@@ -202,7 +202,7 @@ public class BaseObjectFormatter implements ObjectFormatter {
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("{");
|
||||
int len = Math.min(o.length, config.getMode() == ObjectFormatterMode.DISPLAY ? LobInfo.MAX_ARRAY_SIZE : o.length);
|
||||
int len = Math.min(o.length, config.getMode() == ObjectFormatterMode.DISPLAY ? LobInfoHelper.MAX_ARRAY_SIZE : o.length);
|
||||
DatabaseObjectFormatterConfig.DatabaseDisplayObjectFormatterConfig itemConfig =
|
||||
new DatabaseObjectFormatterConfig.DatabaseDisplayObjectFormatterConfig(
|
||||
null, false, null, config.getSettings()
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.intellij.database.util
|
||||
|
||||
import com.intellij.openapi.util.registry.Registry.Companion.intValue
|
||||
|
||||
class LobInfoHelper {
|
||||
companion object {
|
||||
@JvmField
|
||||
val MAX_ARRAY_SIZE: Int = intValue("database.arrays.maxSize", 1000)
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import com.intellij.database.run.ReservedCellValue;
|
||||
import com.intellij.database.run.actions.LoadFileAction;
|
||||
import com.intellij.database.run.ui.DataAccessType;
|
||||
import com.intellij.database.settings.DataGridSettings;
|
||||
import com.intellij.database.util.LobInfoHelper;
|
||||
import com.intellij.notification.Notification;
|
||||
import com.intellij.notification.NotificationType;
|
||||
import com.intellij.notification.Notifications;
|
||||
@@ -68,7 +69,8 @@ public class DefaultTextEditorFactory implements GridCellEditorFactory {
|
||||
protected static boolean isEditable(Object value) {
|
||||
if (value == null || value instanceof String || value instanceof ReservedCellValue ||
|
||||
value instanceof LobInfo && !((LobInfo<?>)value).isTruncated() &&
|
||||
(value instanceof LobInfo.ClobInfo || ((LobInfo<?>)value).length == 0)) {
|
||||
(value instanceof LobInfo.ClobInfo || ((LobInfo<?>)value).length == 0) ||
|
||||
(value instanceof Object[] objArr && objArr.length < LobInfoHelper.MAX_ARRAY_SIZE)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -18,7 +18,6 @@ import java.util.Objects;
|
||||
* @author gregsh
|
||||
*/
|
||||
public abstract class LobInfo<T extends LobInfo<?>> implements Comparable<T>, Serializable {
|
||||
public static final int MAX_ARRAY_SIZE = 100;
|
||||
public final long length;
|
||||
|
||||
private static final ThreadLocal<byte[]> BUFFER = new ThreadLocal<byte[]>() {
|
||||
|
||||
Reference in New Issue
Block a user